Learn SQL From Zero With Real Data
Practice real SQL queries in your browser, from your first SELECT to JOINs, CTEs and window functions.
19 short lessons. Beginners who want a job-ready data skill, and analysts who want to fill gaps. Each lesson takes about two minutes: read the idea, try it yourself, and get instant checks.
Start here: foundation lessons (7)
No experience needed. These lessons build the basics step by step.
- Choosing Columns with SELECTQuery database tables and retrieve specific columns instead of dumping unnecessary data.
- Filtering Rows with WHEREUse WHERE clauses to isolate specific records and exclude irrelevant or cancelled data.
- Sorting & Capping with LIMITOrder query results and cap row counts to find top transactions quickly.
- Aggregating Totals with COUNT & SUMCalculate high-level summary metrics across thousands of rows in a single query.
- SQL INNER JOIN Explained for BeginnersCombine data from multiple tables using shared primary and foreign key IDs.
- Combining Conditions: AND, OR, IN & LIKECombine several filters in one WHERE clause to find exactly the rows a business question needs.
- Unique Values & AveragesUse DISTINCT, AVG, MIN, and MAX to describe a dataset in a single summary row.
Go further: practitioner lessons (12)
Real workplace tasks that build on the foundation.
- SQL COALESCE Example: Sum Totals With NULL ValuesLearn how SELECT, FROM, WHERE, and COALESCE prevent blank values from ruining database calculations.
- Filtering Only What MattersPick exactly the rows you want—so surprise categories don't sneak in.
- SQL LEFT JOIN Example: Keep Every CustomerJoin database tables without accidentally losing records or multiplying totals.
- Counting Unique RecordsCount unique individuals instead of duplicate transactions in summary reports.
- SQL HAVING vs WHERE Explained With ExamplesFilter raw records with WHERE and filter calculated totals with HAVING.
- Custom Category BucketsSegment numerical data into business tiers like High, Medium, and Low with CASE WHEN.
- Month-by-Month Trends & SQL DialectsGroup timestamps into uniform monthly buckets using DATE_TRUNC or strftime across different SQL dialects.
- Finding Top PerformersRank and retrieve top-N records without pulling millions of unnecessary rows.
- Crash-Proof DivisionPrevent query crashes and broken dashboards by guarding against division by zero and preserving decimal precision.
- SQL Window Function Running Total ExampleCompute running day-by-day totals without complex self-joins using SQL Window Functions.
- SQL CTE Example: Find Above-Average CustomersBreak a hard question into named steps with WITH, then compare each group to the overall average.
- SQL ROW_NUMBER PARTITION BY: Top N Per GroupUse ROW_NUMBER with PARTITION BY to find the top record inside every group.
Earn a certificate
Finish the lessons and claim a certificate with a unique ID that anyone can verify online. Share it on LinkedIn or add it to your CV.