Back to Practice
SQL

SQL Analytics Master Sheet

SQL interview and analytics practice grouped by aggregation, joins, windows, cohorts, funnels, and NULL traps.

Aggregation, Grouping & HAVING

39 problems
#0027
Categories Over Revenue Thresholdsqlgroup-byhaving
Easy10 XP
#0029
Find Duplicate Emailssqlduplicatesgroup-by
Easy10 XP
#0061
Second Highest Salarysqlrankingdistinct
Medium15 XP
#0084
Monthly Revenue With CTEsqlcteaggregation
Medium15 XP
#0102
Average Ignoring NULL Scoressqlnullsaggregation
Easy10 XP
#0122
Signup to Purchase Funnelsqlfunnelaggregation
Medium20 XP
#0141
Seven Day Active Userssqldatesdistinct
Medium20 XP
#0159
Monthly Active Userssqldatesaggregation
Medium20 XP
#0173
Customers Above Average Spendsqlcteaggregation
Medium20 XP
#0189
First Purchase Date per Usersqlaggregation
Easy10 XP
#0190
Users With Repeat Purchasessqlhaving
Medium20 XP
#0205
Average Order Value by Usersqlgroup byaggregation
Easy10 XP
#0313
Distinct Active Userssqldistinct
Easy10 XP
#0314
Count Orders Per Statussqlgroup-byaggregation
Easy10 XP
#0315
Total Revenue Per Customersqlgroup-bysum
Easy10 XP
#0316
Customers With More Than Two Orderssqlgroup-byhaving
Easy10 XP
#0318
Customer Order Counts Including Zerosqlleft-joinaggregation
Medium20 XP
#0324
Conditional Counts by Statussqlcaseaggregation
Medium20 XP
#0325
Distinct Products Per Usersqlcount-distinctaggregation
Easy10 XP
#0326
Departments With High Average Salarysqlhavingavg
Easy10 XP
#0336
Monthly Signupssqldatesaggregation
Easy10 XP
#0337
Days Between First and Last Eventsqldatesaggregation
Medium20 XP
#0340
Funnel Step Countssqlfunnelaggregation
Medium20 XP
#0341
Users Completing Full Funnelsqlfunnelhaving
Medium20 XP
#0350
CTE User Revenue Filtersqlcteaggregation
Medium20 XP
#0355
WHERE Before GROUP BYsqlwheregroup-by
Easy10 XP
#0365
Most Common Countrysqlgroup-byranking
Medium20 XP
#0368
Daily New Users by First Eventsqlctedatesaggregation
Medium20 XP
#0370
Churned Users With No Recent Eventsqldatesaggregation
Medium20 XP
#0371
Users With Multiple Event Typessqlgroup-bycount-distinct
Easy10 XP
#0372
Same Day Repeat Purchaserssqlgroup-byhaving
Medium20 XP
#0374
Retention Rate by Cohortsqlretentioncohortaggregation
Hard25 XP
#0378
Users With All Required Eventssqlrelational-divisionhaving
Medium20 XP
#0382
Latest Non-NULL Measurement Datesqlnullsaggregation
Medium20 XP
#0383
Customers With Exactly One Ordersqlgroup-byhaving
Easy10 XP
#0385
Cancellation Rate by Categorysqlcaseaggregationrate
Medium20 XP
#0386
Revenue Per Active Usersqlaggregationdistinctmetric
Medium20 XP
#0389
Simple Customer Lifetime Valuesqlaggregationmetric
Easy10 XP
#0390
Refund Adjusted Revenuesqljoinsaggregationmetric
Medium20 XP

Joins, Anti-Joins & NULL Traps

24 problems

Window Functions, Ranking & CTEs

37 problems
#0026
Top Product Per Categorysqlwindow-functionsranking
Medium15 XP
#0028
Running Revenue By Daysqlwindow-functionsrunning-total
Medium15 XP
#0029
Find Duplicate Emailssqlduplicatesgroup-by
Easy10 XP
#0061
Second Highest Salarysqlrankingdistinct
Medium15 XP
#0084
Monthly Revenue With CTEsqlcteaggregation
Medium15 XP
#0085
Rank Products by Revenuesqlwindow-functionsranking
Medium20 XP
#0123
Latest Row Per User With ROW_NUMBERsqlwindow-functionsdeduplication
Medium20 XP
#0158
Second Highest Salarysqlrankingwindow functions
Medium20 XP
#0173
Customers Above Average Spendsqlcteaggregation
Medium20 XP
#0206
Second Purchase Datesqlwindow functionsranking
Medium20 XP
#0327
Latest Login Per Usersqlwindow-functionsrow-number
Medium20 XP
#0328
Dense Rank Scoressqlwindow-functionsranking
Medium20 XP
#0329
Rank With Gapssqlwindow-functionsrank
Medium20 XP
#0330
Previous Order Amountsqlwindow-functionslag
Medium20 XP
#0331
Next Login Datesqlwindow-functionslead
Medium20 XP
#0332
Running Event Countsqlwindow-functionsrunning-total
Medium20 XP
#0333
Percent of Total Revenuesqlwindow-functionspercentage
Medium20 XP
#0334
Assign Revenue Quartilessqlwindow-functionsntile
Medium20 XP
#0335
Category Winner With FIRST_VALUEsqlwindow-functionsfirst-value
Medium20 XP
#0350
CTE User Revenue Filtersqlcteaggregation
Medium20 XP
#0357
Deduplicate Events Keep Firstsqlwindow-functionsdeduplication
Medium20 XP
#0358
Simple Sessionization by Gapsqlwindow-functionssessions
Hard25 XP
#0360
Top Two Products Per Categorysqlwindow-functionstop-n
Medium20 XP
#0361
Lowest Revenue Product Per Categorysqlwindow-functionsranking
Medium20 XP
#0362
Users Above Global Average Orderssqlctesubquery
Medium20 XP
#0363
First Date Cumulative Revenue Crosses Thresholdsqlwindow-functionsrunning-total
Hard25 XP
#0364
Rolling Three Day Revenuesqlwindow-functionsrolling-window
Hard25 XP
#0365
Most Common Countrysqlgroup-byranking
Medium20 XP
#0366
Median Value for Odd Row Countsqlwindow-functionsmedian
Hard25 XP
#0368
Daily New Users by First Eventsqlctedatesaggregation
Medium20 XP
#0369
Reactivated Users After Long Gapsqlwindow-functionsdatesretention
Hard25 XP
#0376
Product Share Within Categorysqlwindow-functionspercentage
Medium20 XP
#0381
Difference From Category Averagesqlwindow-functionsavg
Medium20 XP
#0387
Products With Price Increasesqlwindow-functionslag
Medium20 XP
#0388
First Order Amount Per Usersqlwindow-functionsfirst-event
Medium20 XP
#0394
Cumulative Users by Signup Daysqlwindow-functionsrunning-total
Medium20 XP
#0395
Latest Status Per Ordersqlwindow-functionsdeduplication
Medium20 XP

Dates, Cohorts, Retention & Funnels

22 problems