SQL QuestSQL Interview Questions › Subqueries & CTEs

Customers Without Orders

MediumFreeQuerying BasicsSubqueries & CTEs

The win-back team needs a list of customers who signed up but never placed a single order — focused on the tiers worth re-engaging. Filter to membership IN ('Gold', 'Silver') and exclude anyone with at least one row in the orders table.

Show customer_id, name, membership. Order by membership ascending, then name ascending.

Use NOT EXISTS. The classic "why not NOT IN" answer: NOT IN is unsafe when the subquery returns any NULL — the comparison silently drops to UNKNOWN and the outer row is excluded even when it shouldn't be. NOT EXISTS sidesteps the NULL trap entirely (it's a row-existence check, not a value comparison) and it's also the form most query planners optimize best.

(Casing matters: the data stores membership as 'Gold'/'Silver'/'Bronze'/'Platinum' with a capital first letter — string equality is case-sensitive, so 'gold' would match nothing.)

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

customers

customer_idnameemailsignup_datemembershiptotal_orders
1John Smithjohn.smith@email.com2023-01-15Gold15
2Emma Wilsonemma.wilson@email.com2023-03-20Silver8
3Michael Brownmichael.brown@email.com2023-02-10Gold12

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: Nina appears, John does not

Hint

WHERE c.membership IN ('Gold', 'Silver') AND NOT EXISTS (SELECT 1 FROM orders o WHERE o.customer_id = c.customer_id). The SELECT 1 inside NOT EXISTS is convention — the planner doesn't care what you select, only whether at least one row exists. Match the data's casing exactly: capital G and capital S.

Concepts

SELECT Subquery NOT EXISTS

Practise the topic: SQL practice questions · CTE practice

In these company practice sets

Plaid

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

Related questions

Department Roster with GROUP_CONCATMedium · FreeConsistent Director AnalysisMedium · FreeBelow Department AverageMedium · FreeHighest Total Salary Budget DepartmentMedium · FreeFare Imputation AnalysisMedium · FreeUNION ALL Dedup: Cross-Dataset SearchMedium · Free

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