SQL Quest › SQL Interview Questions › Joins
Detect Repeat Buyers Within 7 Days
Amazon's Prime retention team defines a repeat buyer as anyone who orders again within 7 days of a previous order — it's the strongest early signal that a buyer has formed the habit worth nurturing. Self-join the orders table to find pairs where the same customer has two orders 1–7 days apart. Return customer_id, first_order_date, repeat_order_date, and days_between (integer). Only show each pair once (first_order_date < repeat_order_date). Sort by days_between ascending, then customer_id. This exact pattern is interview-tested at Amazon, Instacart, and DoorDash because marketplace retention math is the job.
Solve it in the browser editor →
Runs on SQLite in your browser, graded against the expected result, no signup. A wrong answer gets a diagnosis, not just "incorrect".
Schema
orders
| order_id | customer_id | product | category | quantity | price | total | order_date | country | status |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | Laptop Pro | Electronics | 1 | 1299.99 | 1299.99 | 2024-01-15 | USA | completed |
| 2 | 2 | Wireless Mouse | Electronics | 2 | 49.99 | 99.98 | 2024-01-16 | Canada | completed |
| 3 | 3 | Office Chair | Furniture | 1 | 349.99 | 349.99 | 2024-01-17 | USA | completed |
Expected output: days_between = 5
Hint
Concepts
SELECT Self-Join Date Functions DISTINCT BETWEEN Self-Join + Date Functions
Practise the topic: SQL practice questions · JOIN practice · Date function practice · Advanced SQL interview questions
In these company practice sets
Airbnb · Amazon · Anthropic · Meta · OpenAI · Revolut · Shopify · Stripe · Uber · DoorDash
A SQL Quest challenge matched to patterns reported for these companies — not a question any of them has published.
Related questions
Where would this cost you points in an interview?
Ten questions, no signup: a Skillmap across nine SQL skills and the one to fix first.
Take the readiness test