SQL Quest › SQL Interview Questions › Subqueries & CTEs
Order Sessionization by Customer
Meta's sessionization logic is the foundation of every engagement metric they ship — Facebook session time, Instagram session depth, WhatsApp active sessions. Group each customer's orders into sessions: a new session starts whenever 30+ days pass between consecutive orders (by order_date). Using CTEs, show customer_id, order_id, order_date, and session_number (starting at 1 per customer). Sort by customer_id, order_date. The LAG + running-SUM sessionization pattern is a signature Meta Data Engineer / Data Scientist (Analytics) interview question — if you can ship this query, you can ship every downstream engagement metric they build on top of it.
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: session 1, 1, 2, 2 (30+ day gap creates new session)
Hint
Concepts
SELECT CTE Window Functions LAG CASE SUM Date Functions Window Functions + CTE
Practise the topic: SQL practice questions · CTE practice · Window function practice · CASE WHEN practice · GROUP BY exercises · Date function practice · Advanced SQL interview questions
In these company practice sets
Airbnb · Anthropic · Meta · Netflix · OpenAI · Revolut · Spotify · Stripe · Uber · TikTok
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