SQL QuestSQL Interview Questions › Subqueries & CTEs

Customer Retention Cohort

HardProQuerying BasicsSubqueries & CTEsAggregation & GroupingDate FunctionsJoins

Build a simple retention cohort. For each customer, find their first order month (cohort_month). Then count how many customers from each cohort placed at least one order in each subsequent month. Show cohort_month, order_month, customers_active, and retention_rate (percentage of original cohort still active, rounded to 1 decimal). Sort by cohort_month, order_month. Retention cohorts are the gold standard of product analytics at Meta and Netflix.

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_idcustomer_idproductcategoryquantitypricetotalorder_datecountrystatus
11Laptop ProElectronics11299.991299.992024-01-15USAcompleted
22Wireless MouseElectronics249.9999.982024-01-16Canadacompleted
33Office ChairFurniture1349.99349.992024-01-17USAcompleted

Expected output: cohort: Jan, month: Feb, retention_rate: 60.0

Hint

This is a Pro challenge — the hint, the step-by-step tutor and the reference solution open in the app.

Concepts

SELECT CTE MIN Date Functions GROUP BY JOIN DISTINCT CTE + Window Functions

Practise the topic: SQL practice questions · CTE practice · GROUP BY exercises · Date function practice · JOIN practice · Advanced SQL interview questions

In these company practice sets

Airbnb · Anthropic · Apple · Meta · Netflix · OpenAI · Revolut · Shopify · Stripe · DoorDash · TikTok

A SQL Quest challenge matched to patterns reported for these companies — not a question any of them has published.

Related questions

Cumulative Distinct Customers Over TimeHard · FreeRunning Total RevenueHard · FreeYear-over-Year GrowthHard · Free7-Day Rolling Revenue AverageHard · FreeMulti-CTE Revenue PipelineHard · FreeWealthy Survivor ProfileHard · Pro

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