The free home of SQL
Everything you need to learn SQL. Free.
One free place to learn SQL properly: a guided path through 66 concepts, 600+ practice problems on a real database, and SQL games.
Free forever. Runs in your browser. No account needed to start.
Everything here, free
Four ways to get better at SQL.
Start with the adaptive path, read the open library, or play. Pick wherever you are.
SQLMaxx Learn
The flagship. Sixty-six concepts in prerequisite order, graded against a real database, with an engine that tracks what you have actually locked in.
Start learning
The SQL Library
Every concept written out as a lesson you can read and run, plus six hundred-plus practice problems with worked solutions. Free and open.
Browse the library
SQL Games
Learn SQL by playing. Browser games on the same real database as the rest of SQLMaxx. Station Zero is first, with more on the way.
See the games
New tools, soon
Coming soonSQLMaxx is becoming the home for interactive SQL tools. More categories are on the way.
How to Actually Learn SQL
The SQLMaxx Philosophy: You learn SQL by doing it (over and over, with an instant right-or-wrong), and that loop is where both the understanding and the fluency get built. Seeing the same patterns enough times, and finding out immediately whether you got them, is what turns SQL from something you look up to, into something you know. SQL is one of the few skills where this even works, because it has a sandbox and an instant verdict. We built this entire platform around that loop.
Learn SQL for free with SQLMaxx Learn
Our complete online course that teaches you SQL from scratch. Free forever, no account to start.
Start learningSQLMaxx Learn · the flagship
That loop, built into every step.
Learn is where the philosophy runs. Real problems, an instant verdict, mastery you can watch fill in, and review that brings each concept back before it fades.
600+ problems · 66 concepts · 3 schemas
Real problems, not toy examples.
Six hundred-plus hand-built problems across all sixty-six concepts, on real ecommerce, HR, and analytics schemas. The questions you actually get asked on the job, and enough reps to make SQL automatic.
Instant verdict
Write a query. Know if it's right in one second.
No copying an answer and hoping it clicked. Every query runs against a real database and gets checked the moment you hit run, so you know on the spot whether you got it.
Mastery tracking
Stop guessing whether you actually know it.
SQLMaxx tracks every concept and shows what you have locked in and what is still shaky. Your skills fill in one concept at a time, so "I think I get joins" becomes something you can prove.
Spaced review
Learn it once. Keep it for good.
Most of what you learn this week fades by next week. When a concept comes due, SQLMaxx hands you a fresh problem from a blank editor, not a flashcard to re-read. A research-backed algorithm (FSRS) times each return for right before you would forget, so your SQL is still there when the job needs it.
But is SQL even enough to get hired?
Honest answer: SQL is the skill entry-level analyst interviews actually screen for. It shows up in more analyst job descriptions than any other tool, because every dashboard, model, and report starts with pulling the right data out of a database.
Python and Power BI matter too. Both get easier once SQL is locked in. Get SQL right first, and the rest of the path gets shorter.
The full path
All 66 concepts, free to read.
Tier 1 · Foundations
The shape of a query: choose columns, filter rows, sort, and limit what comes back.
- N001 SELECT and Column Expressions
- N002 FROM and Table References
- N003 WHERE Clause and Comparison Operators
- N004 Literal Values, Data Types, and Type Casting
- N005 NULL Semantics and IS NULL
- N006 Boolean Logic in WHERE (AND, OR, NOT)
- N007 ORDER BY and Result Sorting
- N008 LIMIT and OFFSET
- N009 Column Aliases and Expression Naming
- N010 DISTINCT
- N011 Arithmetic and Comparison Expressions
- N012 BETWEEN, IN, and LIKE
Tier 2 · Core SQL
Aggregation, grouping, joins, and your first subqueries. The everyday analyst toolkit.
- N013 Aggregate Functions (COUNT, SUM, AVG, MIN, MAX)
- N014 GROUP BY
- N015 HAVING
- N016 CASE WHEN Expressions
- N017 INNER JOIN
- N018 LEFT JOIN and RIGHT JOIN
- N019 FULL OUTER JOIN
- N020 CROSS JOIN
- N021 Self-Joins
- N022 Joining Multiple Tables
- N023 UNION, UNION ALL, INTERSECT, EXCEPT
- N024 Scalar Subqueries
- N025 Subqueries in WHERE (IN, EXISTS, ANY, ALL)
- N026 Derived Tables (Subqueries in FROM)
- N027 Conditional Aggregation (CASE inside Aggregates)
Tier 3 · Intermediate
CTEs, date and string work, conditional logic, and an introduction to window functions.
- N028 COALESCE and NULLIF
- N029 NULL Handling in Joins and Aggregates
- N030 Common Table Expressions (CTEs)
- N031 Chained CTEs
- N032 Date and Time Types in PostgreSQL
- N033 Date Truncation and Extraction
- N034 Date Arithmetic and Intervals
- N035 String Functions (LENGTH, UPPER, LOWER, TRIM, SUBSTRING)
- N036 String Concatenation and Formatting
- N037 Pattern Matching (LIKE, ILIKE, SIMILAR TO, Regex)
- N038 Window Functions Introduction (OVER, PARTITION BY)
- N039 ROW_NUMBER, RANK, DENSE_RANK
- N040 Aggregate Window Functions (SUM, AVG, COUNT OVER)
- N041 Temp Tables and CREATE TABLE AS SELECT
Tier 4 · Advanced
The full window-function range, lateral joins, JSON, and recursive queries.
- N042 LAG and LEAD
- N043 FIRST_VALUE, LAST_VALUE, NTH_VALUE
- N044 Window Frames (ROWS, RANGE, GROUPS)
- N045 NTILE and Percentile Functions
- N046 DISTINCT ON
- N047 Correlated Subqueries
- N048 LATERAL Joins
- N049 FILTER Clause on Aggregates
- N050 STRING_AGG and ARRAY_AGG
- N051 generate_series() for Sequences and Date Spines
- N052 Recursive CTEs
- N053 JSONB Field Extraction
- N054 JSONB Aggregation (jsonb_agg, json_build_object)
- N055 Date Spine Construction and Zero-Fill Patterns
- N056 Period-over-Period Analysis
- N057 Grouping by Date Periods
Tier 5 · Expert
Analytical patterns and query reasoning: running totals, sessionization, reading EXPLAIN.
- N058 Multi-CTE Query Architecture
- N059 Join Fanout and Aggregate Correctness
- N060 Reading EXPLAIN Output
- N061 Query Structure Patterns for Performance
- N062 Choosing Between Subqueries, CTEs, and Joins
- N063 NULL Propagation in Complex Queries
- N064 Running Totals and Cumulative Metrics
- N065 Sessionization and Funnel Analysis Patterns
- N066 Analyst Debugging Patterns
Questions
The questions you've been asking, answered.
Is SQL enough to get a data analyst job?
Do I need to install anything?
Is SQLMaxx really free?
Do I need to know any SQL to start?
Is it too late to learn SQL?
How is this different from a tutorial?
The first concept is SELECT. Start it today.
Free forever. No account needed to start.