🏋️ 299 exercises · 226 free · skill-tracked

SQL Practice Questions — 299 exercises, full solutions

Browse by topic, difficulty, company, or industry. Every exercise has sample data, expected output, AI-explained hints, and a worked solution. The Skillmap tracks where you're strong and where you need more reps.

Open the Exercise Bank → See the categories ↓

Or let the Coach pick — 1 click, the next exercise targets your weakest skill.

299
Exercises
226
Free to solve
9
Skill categories
22
Company tags
3
Industry tracks
Browse

Four ways to slice the exercise bank

Pick the lens that matches what you're trying to do — close a topic gap, prep for a specific company, or just drill at a difficulty.

Or drill one topic on its own page: GROUP BY & aggregation · Window functions · Joins · CTEs · CASE WHEN · Subqueries · Date functions · NULL handling · String functions · Ranking functions · Advanced SQL interview questions — or compare them side by side on SQL practice by topic, or open every question as its own page.

By topic

Practice one skill at a time

Each topic page lists the runnable set for one line of the Skillmap, from the first Easy to the last Hard.

Window Functions

RANK, ROW_NUMBER, LAG/LEAD, running totals

Practice this topic →

Joins

INNER, LEFT, anti-joins, self-joins

Practice this topic →

CTEs

WITH, chained and recursive CTEs

Practice this topic →

Subqueries

Correlated, EXISTS, IN, derived tables

Practice this topic →

Aggregation & Grouping

GROUP BY, HAVING, conditional aggregates

Practice this topic →

Conditional Logic

CASE WHEN inside SELECT, WHERE and ORDER BY

Practice this topic →

Date Functions

Date math, truncation, month-over-month

Practice this topic →

NULL Handling

COALESCE, IS NULL, NULLs in joins and aggregates

Practice this topic →

String Functions

LIKE, SUBSTR, TRIM, pattern matching

Practice this topic →

By difficulty

Exercises by difficulty — beginner, intermediate, advanced

299 exercises as of September 2026, counted from the live bank: 190 core problems plus 97 on the three industry tracks. Every exercise shows its worked solution once you've solved it.

BankEasyMediumHardTotal
Core exercises538154188
Sector tracks (banking · real estate · manufacturing)38392097
All exercises9112074285

Industry tracks: Banking & Finance (57 exercises), Real Estate (20), Manufacturing (20). Their Easy and Medium problems are free like the rest of the bank. The Coach gates Hard until you've shown mastery on Medium; browse mode lets you open any free exercise directly.

What an exercise looks like

A sample walked through

Every exercise on SQL Quest has the same anatomy: prompt, sample data, expected output, your editor, instant feedback. Here's a Medium-difficulty Window Function exercise.

Top 3 Highest-Paid Employees per Department

MediumWindow FunctionsPARTITION BY

📋 The prompt

For each department, find the top 3 highest-paid employees. If two employees are tied at the same salary, both should appear (and they share the rank). Output columns: name, department, salary, ordered by department, then salary descending.

📊 Sample data — employees

idnamedepartmentsalary
1AliceEngineering180000
2BobEngineering170000
3CarolEngineering170000
4DanSales120000
5EveSales110000

✅ Expected output

namedepartmentsalary
AliceEngineering180000
BobEngineering170000
CarolEngineering170000
DanSales120000
EveSales110000

💡 Hint progression

Hint 1: "Ranking ties — which window function keeps both Bob and Carol at rank 2 instead of giving one rank 3?"
Hint 2: "Wrap your ranked query in a CTE. You can't filter on a window function in the same WHERE."
Show Structure: skeleton with WITH/PARTITION/ORDER BY blanks.

🔓 Solution (revealed only when you ask)

WITH ranked AS ( SELECT name, department, salary, DENSE_RANK() OVER ( PARTITION BY department ORDER BY salary DESC ) AS rk FROM employees ) SELECT name, department, salary FROM ranked WHERE rk <= 3 ORDER BY department, salary DESC;
See 61 Window Function Exercises →
Skill tracking

Every exercise feeds the Skillmap

SQL Quest tracks your proficiency across 9 canonical skills. Each exercise contributes points to the skills it exercises — weighted by difficulty, your speed, and how many hints you used.

More points

Cold solve, no hints

First-attempt solve on a Hard exercise without revealing structure or asking the AI Coach. The clearest signal of real mastery.

Some points

Solve with hints

Used Show Structure or asked the Coach. Still counts — you learned something — but at a discount. The radar reflects guided solves differently than cold ones.

Mastery check

Fresh-solve on unseen exercise

After a lesson, the Coach drops you on 2-3 unseen exercises in the same skill. Recognition isn't enough; you have to produce. That's what gates advancement.

Frequently Asked

299 exercises waiting — 226 free.
Open the bank.

Free, browser-only, no signup. The Coach can pick the next exercise — or you can browse.

Open SQL Quest — Free ⚡