The SQL half of the interview
Data, analytics and backend interviews all spend a round on SQL, and it's the round people prepare for last. Not because it's hard — because it looks easy until someone asks why your LEFT JOIN lost rows, or why != skipped the NULLs.
56 questions across 10 topics, written to survive the follow-up rather than to define the keyword. Free to read here; inside the app they come back on a spaced-repetition schedule, alongside 65 practice problems that tick themselves off as you solve them.
SELECT & filtering
Choosing rows and columns — and the NULL rules that quietly break it.
6 questions · 8 problems
Joins
Combining tables, and why your LEFT JOIN quietly became an INNER JOIN.
6 questions · 10 problems
Aggregation
COUNT, SUM, AVG — and what every one of them does with NULL.
6 questions · 9 problems
GROUP BY & HAVING
Bucketing rows, and the difference between filtering before and after.
6 questions · 8 problems
Subqueries & CTEs
Queries inside queries, and when a CTE makes it readable instead.
6 questions · 8 problems
Window functions & ranking
Aggregates that don't collapse rows — and the three ranking functions.
6 questions · 7 problems
Self-joins
Joining a table to itself to compare rows against other rows.
5 questions · 4 problems
Dates & time
Date arithmetic, truncation, and why BETWEEN loses the last day.
5 questions · 7 problems
String handling
Casing, matching, concatenation — and the dialect traps in each.
5 questions · 4 problems
Pivoting & reshaping
Turning rows into columns with conditional aggregation.
5 questions · 4 problems
Reading SQL isn't writing SQL
Every problem in the app is a free, database-tagged LeetCode question, checked against your solve history — so the sheet knows what you've already done, and the cards come back right before you'd forget them.
Start your streakFull refund within 7 days. No questions.