Master the SQL patterns Amazon asks across BIE, Data Analyst, and SDE roles. Practice e-commerce queries, business metrics, and analytics with real datasets and AI tutoring.
34 challenges
Amazon patterns
Real datasets
E-commerce & logistics
AI tutor
Step-by-step hints
What is sourced: Amazon does not publish its interview format, so every specific about their process on this page is what candidates and prep guides described publicly — each one carries its source and the date it showed. Formats change; treat them as reported, not official. What is ours: the practice questions are SQL Quest challenges, picked because their SQL matches the patterns those sources report. They are not questions Amazon has asked.
Amazon does not publish the format. Each row is what candidates and prep guides have described publicly, with its source; where sources disagree, the row says so. Formats change — treat every specific as reported, not official. The sources below describe Business Intelligence Engineer / data analytics roles; other teams at Amazon may run a different loop.
| Stages | A recruiter screen of about 30 minutes, one or two technical phone screens, then a virtual onsite loop of about five rounds.[1][2] |
|---|---|
| Round length | One candidate report puts the technical phone screens at 75 minutes each and the onsite rounds at roughly 60 minutes. A prep guide describes the onsite as five to six rounds of 45 minutes to an hour.[1][2] |
| Environment | The same report describes SQL written on a "CoderPad-style" editor where you often cannot execute the query, so correctness has to be reasoned rather than run.[1] |
| What the SQL round covers | Joins, window functions and ranking, with follow-ups on edge cases; the guide says to expect at least five questions across SQL, Python, visualisation and business analytics in the technical screen, without splitting out how many are SQL.[1][2] |
| Alongside the SQL | Leadership Principles come up throughout, including inside technical rounds — not only in the behavioural ones.[2][1] |
Sources: Blind — "Amazon Business Intelligence Engineer (BIE L5) Interview 2025" (candidate report, replies to 15 Oct 2025) (14 Sep 2025); Exponent — Amazon Business Intelligence Engineer interview guide (shown as "updated 2 months ago" on 14 Sep 2026). Accessed 14 Sep 2026.
The 34 challenges tagged Amazon in the SQL Quest bank, with every raw challenge tag resolved to the 9 canonical skills. Each share is the portion of those 34 challenges that exercise the skill — a challenge exercises several, so the shares do not sum to 100%. This is the composition of the practice set on this page, not a measurement of Amazon’s interview.
These are SQL Quest challenges chosen because their SQL matches the work — Querying Basics, Aggregation & Grouping, Subqueries & CTEs. They are not questions Amazon has asked, and this page does not claim to know its questions. All of the six play free; each card opens the challenge itself.
General guidance about analytics SQL work — not sourced from Amazon and not a description of its process. We have no dated, citable source for how Amazon runs its SQL round, so this page states none.
All 34 Amazon-tagged challenges, about three a day, in the order the patterns build on each other. Every solved challenge shows its solution. Ten are playable free (7 Medium plus 3 free Hard previews); the rest of the Hard set is Pro. Queries run in the browser — no setup, no signup to start.
Amazon publishes its Leadership Principles, and behavioral follow-ups in data loops are commonly framed around them. So after every query in this plan, practice a one-sentence Dive Deep answer: what decision this number would drive, and what you would check before trusting it. We do not know which questions any loop uses; these are the patterns that show up in analyst-round questions.
Analyst-round questions start with counting the right thing: who never ordered, how orders split by status, who bought in every category. Get the join direction and the HAVING clause right before touching window functions.
Day 1 · Customers Who Never Ordered
The anti-join: LEFT JOIN + IS NULL, or NOT EXISTS. The logic behind every re-activation list.
Day 1 · Inactive Customers by Tier
LEFT JOIN + CASE + GROUP BY: who has gone quiet, bucketed by membership tier.
Day 2 · Pivot: Order Status by Country
Standard SQL has no PIVOT — build one with CASE inside SUM.
Day 2 · Conditional Counting with CASE
COUNT one thing and SUM(CASE) another in the same GROUP BY.
Day 2 · Performance vs Salary Analysis
Conditional aggregates across two dimensions, ordered for a reader.
Day 3 · EXISTS vs IN: Departments with Top Performers
A correlated subquery; know when EXISTS beats IN and say why.
Day 3 · Genres Without Blockbusters
NOT IN and its NULL trap.
Day 3 · Customers with Orders in ALL Categories
Relational division: COUNT(DISTINCT) in HAVING against the category count.
Day 4 · Customer Lifetime Value
Three-table join, aggregate once, order by the total.
Day 4 · Order Status Dashboard
GROUP BY with a subquery for each status's share of the total.
Day 4 · Order Funnel Conversion
Funnel stages as CASE aggregates, conversion as a ratio.
Day 4 · Daily Active Customers
COUNT DISTINCT per day — the metric every ops dashboard opens with.
Running totals, rolling averages and period-over-period growth. The frame clause is where candidates lose points: LAST_VALUE with the default frame returns the current row, not the last one. Two of these days start on a free Hard preview.
Day 5 · Running Total Revenue
SUM() OVER (ORDER BY …): the cumulative line. Free Hard preview.
Day 5 · Revenue Share by Category (Window %)
SUM() OVER () with no partition gives you the denominator.
Day 6 · 7-Day Rolling Revenue Average
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW, after a daily GROUP BY. Free Hard preview.
Day 6 · Moving Average with Dynamic Window
A frame clause inside a CTE, with a HAVING filter underneath.
Day 6 · Sliding Window Max Revenue
MAX() over a sliding frame.
Day 7 · First and Last Order per Customer
FIRST_VALUE / LAST_VALUE — fix the frame or LAST_VALUE silently lies.
Day 7 · Month-over-Month Revenue Growth
GROUP BY to months first, then LAG one row.
Day 8 · Department Salary Percentile Buckets
NTILE with PARTITION BY, labelled with CASE.
Day 8 · Second Highest Salary per Department
DENSE_RANK so ties share a rank — say which one the question wants.
Multi-step pipelines: dedupe, rank, find streaks, walk a hierarchy. Name each CTE for what it holds and the interviewer can follow you. Day 9 opens on a free Hard preview.
Day 9 · Multi-CTE Revenue Pipeline
Chained CTEs into one report. Free Hard preview.
Day 9 · Anti-Join Pipeline: Unmatched Records
The Day 1 anti-join, now staged in a CTE.
Day 10 · Top-N Products per Category
ROW_NUMBER() OVER (PARTITION BY category ORDER BY revenue DESC), filtered in the outer query.
Day 10 · Deduplicate Orders with ROW_NUMBER
Keep rn = 1 per key: the standard dedupe.
Day 10 · Top Spender Per Country
The same top-1-per-group question, solved with a subquery instead.
Day 10 · Top Spender per Membership Tier
CTE + JOIN + window function, one winner per group.
Day 11 · Detect Repeat Buyers Within 7 Days
Self-join on customer with a date BETWEEN.
Day 11 · Self-Join: Repeat Orders Within a Week
The same self-join, tightened.
Day 11 · Engagement Streaks (3+ Orders, ≤7-Day Gaps)
Gaps and islands with LAG and a running group id.
Day 11 · Island Length Classification
Islands again, classified with CASE.
Day 12 · Recursive Team Size Rollup
WITH RECURSIVE to sum a tree.
Day 12 · Recursive Org Chart Traversal
Walk the manager chain to any depth.
Day 12 · Customer Lifetime Value Pipeline
Derived table + NTILE + CASE: the whole toolkit in one query.
Day 13: open the Amazon filter, pick three challenges you have not solved, set 45 minutes, no hints — and say the approach out loud before writing SQL. Day 14: redo, cold, every challenge you needed a hint for during the first twelve days. A pattern you can only solve with the hint open is not yet a pattern you know.
Skillmap
Ten questions, no signup. You get a readiness score weighted to the SQL this page covers, your Skillmap across joins, window functions, aggregation and the rest, and the weakest skill to practise first.
Drill the skills the Amazon set leans on, one at a time: GROUP BY exercises · CTE practice · Window function practice · JOIN practice · CASE WHEN practice — or browse every SQL practice question.
Every question in the Amazon set, one page each with the schema and a hint: Pivot: Order Status by Country · Customers Who Never Ordered · EXISTS vs IN: Departments with Top Performers · Genres Without Blockbusters · Performance vs Salary Analysis · Conditional Counting with CASE · Inactive Customers by Tier · Running Total Revenue · 7-Day Rolling Revenue Average · Multi-CTE Revenue Pipeline · First and Last Order per Customer · Top Spender Per Country · Moving Average with Dynamic Window · Detect Repeat Buyers Within 7 Days · Recursive Team Size Rollup · Customer Lifetime Value · Daily Active Customers · Revenue Share by Category (Window %) · Order Status Dashboard · Engagement Streaks (3+ Orders, ≤7-Day Gaps) · Top-N Products per Category · Deduplicate Orders with ROW_NUMBER · Anti-Join Pipeline: Unmatched Records · Customers with Orders in ALL Categories · Sliding Window Max Revenue · Customer Lifetime Value Pipeline · Top Spender per Membership Tier · Recursive Org Chart Traversal · Order Funnel Conversion · Self-Join: Repeat Orders Within a Week · Month-over-Month Revenue Growth · Island Length Classification · Department Salary Percentile Buckets · Second Highest Salary per Department.
No signup required. No credit card. Open the app and start practicing Amazon SQL patterns right now.
Launch SQL Quest — It's Free ⚡Works on Chrome, Firefox, Safari, Edge · No plugins · No downloads
Interviewing at more than one company? The same patterns carry: Meta · Google · Apple · Netflix — or the full company-by-company interview guide.