Focused path · SQL Analyst

SQL 50

50 canonical experiences selected to strengthen foundations, business analysis and window functions. They share progress with the main catalogue.

Progress0 / 500 %
Difficulty15 · 25 · 1015 beginner · 25 intermediate · 10 advanced
Estimated time23 hbased on each exercise’s estimated duration
Skills covered
Precisely define output columnsRespect the order requested by the recipientAvoid SELECT* in a query intended for reuseTranslate a business threshold into a predicate WHEREChoosing between strict superior and superior or equalProduce a repeatable order with ORDER BYEliminate duplicates with DISTINCTSort before limiting

Your practice plan

One clear next step, all the way to 50/50.

Choose your pace. Both modes use the same exercises and shared progress.

Do this nowSelect the correct columns

Show only the name and price of each product.

Start SQL 50
SQL 50 progress0 / 50
0 / 50

2 of 50 exercises are open with your current access.

Your successes are saved on this device. Create a free account to sync them and resume anywhere.

SQL 50 milestones

Every success moves your level forward.

0XP earned in SQL 50
Level 1Discovery0 %200 XP to the next level
Next milestoneFirst momentum5 exercises left
  1. First momentum5 / 50
  2. Foundations15 / 50
  3. Connected queries25 / 50
  4. Ready for analysis40 / 50
  5. SQL 50 complete50 / 50

XP is calculated from distinct completed exercises, never from the number of attempts.

1Module 1Read, filter and sortSelect the right rows and make the result reproducible.0 / 7
  1. Select the correct columnsSELECT · Beginner · 15 min
    Do this nowView details
  2. Filter and sort ordersWHERE · ORDER BY · Beginner · 15 min
    AvailableView details
  3. List unique categoriesDISTINCT · LIMIT · Beginner · 15 min
    Access requiredView details
  4. Filter a price rangeBETWEEN · Beginner · 15 min
    Access requiredView details
  5. Filter multiple statusesIN · Beginner · 15 min
    Access requiredView details
  6. Search for a prefix with LIKELIKE · Beginner · 15 min
    Access requiredView details
  7. Identify missing deliveriesIS NULL · Beginner · 15 min
    Access requiredView details
2Module 2Prepare and summarise dataHandle NULL, text, dates, calculations and first indicators.0 / 8
  1. Replace a NULL value with COALESCENULL · COALESCE · Beginner · 15 min
    Access requiredView details
  2. Calculate a price including taxExpressions · ROUND · Beginner · 15 min
    Access requiredView details
  3. Assemble a product labelText · Concatenation · Beginner · 15 min
    Access requiredView details
  4. Normalize a list of citiesTRIM · UPPER · DISTINCT · Beginner · 15 min
    Access requiredView details
  5. Extract the year of registrationDates · EXTRACT · Beginner · 15 min
    Access requiredView details
  6. Calculate paid order indicatorsCOUNT · SUM · AVG · Beginner · 15 min
    Access requiredView details
  7. Group revenue by categoryGROUP BY · HAVING · Beginner · 15 min
    Access requiredView details
  8. Keep customers without ordersLEFT JOIN · COUNT · Beginner · 15 min
    Access requiredView details
3Module 3Join tables without breaking the grainChoose the right join and control what each row represents.0 / 7
  1. Connect customers and ordersINNER JOIN · Intermediate · 25 min
    Access requiredView details
  2. Find customers without ordersLEFT JOIN · HAVING · Intermediate · 25 min
    Access requiredView details
  3. Calculate the average basket per customerJOIN · AVG · Intermediate · 25 min
    Access requiredView details
  4. Calculate revenue using three tablesJOIN · GROUP BY · Intermediate · 25 min
    Access requiredView details
  5. Connect a table to itselfSELF JOIN · Intermediate · 25 min
    Access requiredView details
  6. Find the first orderMIN · GROUP BY · Intermediate · 25 min
    Access requiredView details
  7. Filter an average basket with HAVINGAVG · HAVING · Intermediate · 25 min
    Access requiredView details
4Module 4Subqueries and set operationsTest existence, compare a benchmark and combine sources.0 / 5
  1. Test for the existence of a large orderEXISTS · Intermediate · 25 min
    Access requiredView details
  2. Compare to average priceSubquery · AVG · Intermediate · 25 min
    Access requiredView details
  3. Merge customers and prospectsUNION · Intermediate · 25 min
    Access requiredView details
  4. Keep origin with UNION ALLUNION ALL · Intermediate · 25 min
    Access requiredView details
  5. Find the intersection of two listsINTERSECT · Intermediate · 25 min
    Access requiredView details
5Module 5Structure and control an analysisUse CTEs to reconcile, deduplicate and expose the method.0 / 7
  1. Segment customers with a CTECTE · CASE · Intermediate · 25 min
    Access requiredView details
  2. Detect duplicate emailsQuality · HAVING · Intermediate · 25 min
    Access requiredView details
  3. Reconcile orders and paymentsQuality · Subqueries · Intermediate · 25 min
    Access requiredView details
  4. Calculate the overall margin with a CTECTE · Calculations · Intermediate · 25 min
    Access requiredView details
  5. Rank the top three categoriesCTE · TOP N · Intermediate · 25 min
    Access requiredView details
  6. Compare each month to the previous oneCTE · Auto-join · Intermediate · 25 min
    Access requiredView details
  7. Measure phone completenessNULL · COUNT · Intermediate · 25 min
    Access requiredView details
6Module 6Build reliable KPIsTurn a business request into dated, segmented and interpretable indicators.0 / 6
  1. Calculate monthly revenueDates · GROUP BY · Intermediate · 25 min
    Access requiredView details
  2. Analyze a quarter with limitsDates · WHERE · Intermediate · 25 min
    Access requiredView details
  3. Classify inventory riskCASE WHEN · Intermediate · 25 min
    Access requiredView details
  4. Calculate multiple statuses in one lineCASE · Aggregations · Intermediate · 25 min
    Access requiredView details
  5. Calculate margin by categoryProject · joins · Intermediate · 25 min
    Access requiredView details
  6. Track monthly payment rateProject · KPI · Intermediate · 25 min
    Access requiredView details
7Module 7Cohorts, segmentation and time seriesMove into multi-step Analyst cases and advanced functions.0 / 5
  1. Avoid double counting after several joinslevel of detail · joins · Aggregations · Advanced · 55 min
    Access requiredView details
  2. Building a cohort and measuring retentionCohorts · Retention · Dates · Advanced · 55 min
    Access requiredView details
  3. Build a complete RFM segmentationRFM · Segmentation · CASE · Advanced · 55 min
    Access requiredView details
  4. Measure a funnel without counting duplicate eventsFunnel · Conversion · FILTER · Advanced · 55 min
    Access requiredView details
  5. Analyze a time series with missing monthsTime series · LAG · Frames · Advanced · 55 min
    Access requiredView details
8Module 8Audit and decide independentlyDetect grain bias, justify controls and defend a business conclusion.0 / 5
  1. Deduplicate with a deterministic ruleQuality · ROW_NUMBER · Ties · Advanced · 55 min
    Access requiredView details
  2. Analyze the margin and real contributionMargin · Contribution · Multi-table · Advanced · 55 min
    Access requiredView details
  3. Audit a KPI before publicationKPI quality · level of detail · Reconciliation · Advanced · 55 min
    Access requiredView details
  4. Clean an imperfect dataset before analysisQuality · NULL · References · Advanced · 55 min
    Access requiredView details
  5. Conduct an autonomous seller analysisAutonomous analysis · Decision · Advanced · 55 min
    Access requiredView details