SQL Quest › SQL Interview Questions › Window Functions
First and Last Order per Customer
Amazon's retention analytics team wants to see each buyer's first and last purchased item alongside their full order history — useful for spotting category migration (e.g., the buyer who started in Books and is now deep in Electronics). For each customer's orders, show the customer_id, order_id, product, order_date, first_product (the product from their earliest order), and last_product (the product from their latest order). Use FIRST_VALUE and LAST_VALUE window functions. Sort by customer_id, order_date. FIRST_VALUE/LAST_VALUE are an Amazon interview staple because they force you to reason about frame clauses — the default RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW silently breaks LAST_VALUE, and most candidates ship wrong results without noticing.
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: Each row shows first_product=Laptop, last_product=Tablet
Hint
Concepts
SELECT Window Functions FIRST_VALUE LAST_VALUE Frame Clause
Practise the topic: SQL practice questions · Window function practice · Advanced SQL interview questions
In these company practice sets
Airbnb · Amazon · Apple · Databricks · OpenAI · Plaid · Revolut · Snowflake · Uber · DoorDash · Walmart
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