tradeoff
  • Learn

    • Course and AI tutor169 plain-English lessons on system design, low-level design and SQL. Free to read, with an AI tutor.
    • Trade-offsEvery system design choice, with the numbers. Free to read.
    • Study tracksWhat to learn, in order, for your level, with honest time estimates.

    Practise

    • 7-minute DrillOne real situation a day, about 7 minutes. A short report.
    • Load simulatorBuild a design and see what breaks under load. All 8 levels free, no sign-up.
    • PracticeSystem design problems, DSA and SQL practice, and the free Cost Lab.

    Prove

    • Mock interviewsSeven kinds of AI interview round. Each ends with a report for your level.
    • Technical PassportA link you choose to share with a recruiter. It shows only the reports you pick.

    Try it now, no sign-upTry Level 1Open simulatorRead today’s DrillOpen Cost LabDSA problemsSQL practice

    See all features
  • Pricing
  • For companies
Log inStart learning
tradeoff
  • Pricing
  • For companies
  • Log in

Learn

  • Course and AI tutor169 plain-English lessons on system design, low-level design and SQL. Free to read, with an AI tutor.
  • Trade-offsEvery system design choice, with the numbers. Free to read.
  • Study tracksWhat to learn, in order, for your level, with honest time estimates.

Practise

  • 7-minute DrillOne real situation a day, about 7 minutes. A short report.
  • Load simulatorBuild a design and see what breaks under load. All 8 levels free, no sign-up.
  • PracticeSystem design problems, DSA and SQL practice, and the free Cost Lab.

Prove

  • Mock interviewsSeven kinds of AI interview round. Each ends with a report for your level.
  • Technical PassportA link you choose to share with a recruiter. It shows only the reports you pick.

Try it now, no sign-upTry Level 1Open simulatorRead today’s DrillOpen Cost LabDSA problemsSQL practice

Start learning

Free to start. Read today’s Drill without an account; sign up free to answer.

SQL

Practise SQL

70 SQL interview problems, from easy to hard. Free for everyone.

Free to read and browse. Sign up free to run your queries and keep track of what you have solved.

Start hereEasyEmployees and their departments

No. 01joinleft joincoalesce

Easy

0 of 20 solved

  1. Not started. 01Employees and their departmentsjoin · left join · coalesce
  2. Not started. 02Big orders with customer and productjoin · inner join · multi table
  3. Not started. 03Customers who never orderedjoin · anti join · left join
  4. Not started. 04Orders and spend per customerjoin · left join · group by
  5. Not started. 05Delivered and cancelled orders per restaurantgroup by · conditional aggregation · case
  6. Not started. 06Restaurants with a high average ordergroup by · having · avg
  7. Not started. 07Total pay when the bonus can be emptynull · coalesce · case
  8. Not started. 08Rides that cost more than the averagesubquery · scalar subquery · avg
  9. Not started. 09Employees who earn more than their managerjoin · self join · payroll
  10. Not started. 10Find duplicate email addressesgroup by · having · duplicates
  11. Not started. 11Orders and revenue per month in 2026date · strftime · group by
  12. Not started. 12Histogram of order sizeshistogram · group by · integer division
  13. Not started. 13Swap the seats of neighbourscase · modulo · swap
  14. Not started. 14Repeat customer rategroup by · conditional aggregation · percentage
  15. Not started. 15Pairs who follow each otherself join · join · exists
  16. Not started. 16Customers who stopped orderingjoin · group by · having
  17. Not started. 17Order lines whose order is missinganti join · left join · not exists
  18. Not started. 18Sign-ups per email domainstring · substr · instr
  19. Not started. 19Customers who live in Delhistring · like · trim
  20. Not started. 20Active students in each coursemany to many · join table · left join

Medium

0 of 30 solved

  1. Not started. 01Big spendersgroup by · having · aggregate
  2. Not started. 02Top two salaries in each departmentwindow function · dense rank · top n per group
  3. Not started. 03Second highest salarysubquery · distinct · limit offset
  4. Not started. 04Top two dishes of each restaurantwindow function · row number · top n per group
  5. Not started. 05Running total of daily revenuewindow function · running total · sum over
  6. Not started. 06Three day moving average of sign-upswindow function · moving average · avg over
  7. Not started. 07Day over day change in orderswindow function · lag · day over day
  8. Not started. 08First and last order amount of each customerwindow function · first value · last value
  9. Not started. 09Cancellation rate by cityconditional aggregation · case · percentage
  10. Not started. 10Share of revenue by categorywindow function · percent of total · sum over
  11. Not started. 11Pivot: sales per product for each monthpivot · conditional aggregation · case
  12. Not started. 12De-duplicate: keep the latest row per emailwindow function · row number · deduplication
  13. Not started. 13Orders above the average of the same customersubquery · correlated subquery · cte
  14. Not started. 14Drivers with the most completed ridessubquery · group by · having
  15. Not started. 15Month over month revenue growthwindow function · lag · month over month
  16. Not started. 16Best seller of each category in each monthwindow function · rank · top n per group
  17. Not started. 17First paid order after the free trialleft join · join condition · min
  18. Not started. 18Employees who never changed managergroup by · having · count distinct
  19. Not started. 19How many orders are in each status nowwindow function · row number · greatest n per group
  20. Not started. 20End of day balance of each accountwindow function · running total · sum over
  21. Not started. 21Double-booked roomsself join · interval overlap · join
  22. Not started. 22Daily revenue with the empty daysrecursive cte · calendar · left join
  23. Not started. 23Find the missing ticket numbersrecursive cte · anti join · sequence
  24. Not started. 24Employees in each salary bandhistogram · case · range join
  25. Not started. 25Average days between orderswindow function · lag · julianday
  26. Not started. 26Products bought togetherself join · market basket · pairs
  27. Not started. 27Top three products and the rest as Otherstop n · window function · row number
  28. Not started. 28The second order of each customerwindow function · row number · nth per group
  29. Not started. 29Share of users by number of orderscumulative distribution · window function · running total
  30. Not started. 30Duplicate wishlist rows: keep the first, list the restdeduplication · window function · row number

Hard

0 of 20 solved

  1. Not started. 01Longest login streakgaps and islands · window function · row number
  2. Not started. 02Group page views into sessionssessionization · window function · lag
  3. Not started. 03Purchase funnel conversionfunnel · conversion · conditional aggregation
  4. Not started. 04Monthly retention by signup cohortcohort · retention · date
  5. Not started. 05Median delivery fee by citymedian · window function · row number
  6. Not started. 06Everyone who reports to a manager, at any levelrecursive cte · hierarchy · tree
  7. Not started. 07Customers who make the first 80 percent of revenuewindow function · running total · pareto
  8. Not started. 08Rolling 7 day active userscount distinct · correlated subquery · self join
  9. Not started. 09Users active three weeks in a rowgaps and islands · window function · row number
  10. Not started. 10Merge repeated price rows into periodsgaps and islands · window function · lag
  11. Not started. 11P90 latency of each servicepercentile · window function · row number
  12. Not started. 12Year over year revenue by monthself join · left join · cte
  13. Not started. 13Friend suggestions from mutual friendsself join · union · anti join
  14. Not started. 14Fewest flights from Mumbai to every cityrecursive cte · graph · shortest path
  15. Not started. 15Spells of three or more school days absentgaps and islands · window function · row number
  16. Not started. 16Funnel conversion by devicefunnel · conversion · cte
  17. Not started. 17Revenue at the price in force on the order dayas of join · scd · correlated subquery
  18. Not started. 18Days with a sudden traffic spikewindow function · rolling window · range frame
  19. Not started. 19The first move that makes stock negativewindow function · running total · sum over
  20. Not started. 20New versus returning customer revenue by monthcohort · conditional aggregation · count distinct
tradeoff

Practise system design and interviews that actually teach.

Product

  • All features
  • Course and AI tutor
  • 7-minute Drill
  • Load simulator
  • Practice
  • Mock interviews
  • Technical Passport

Free practice

  • Try Level 1
  • Try the simulator
  • Today’s Drill
  • Cost lab
  • DSA problems
  • SQL practice
  • Trade-offs
  • Study tracks
  • Read the lessons

Some practice tools need a free account.

Company

  • Pricing
  • For companies
  • About
  • Contact

Legal

  • Privacy
  • Terms
  • Refunds

© 2026 Tradeoff.Designed and built by WDS