SQL practice
Grouped by pattern, the way you will meet them on the job. Every query runs on DuckDB in your browser against bitshop, ridelog or helpdesk.
0 of 25 shipped
Filter and aggregate 3
| # | Problem | Level | Status |
|---|---|---|---|
| 01 | Revenue by categoryFilter and aggregate | easy | ○ not started |
| 02 | Trip stats by cityFilter and aggregate | easy | ○ not started |
| 03 | SLA breaches by priorityFilter and aggregate | medium | ○ not started |
Joins and anti-joins 3
| # | Problem | Level | Status |
|---|---|---|---|
| 04 | Customers who never orderedJoins and anti-joins | easy | ○ not started |
| 05 | Agents hired before their managerJoins and anti-joins | easy | ○ not started |
| 06 | Units sold per productJoins and anti-joins | medium | ○ not started |
Window functions 3
| # | Problem | Level | Status |
|---|---|---|---|
| 07 | Running revenue by monthWindow functions | easy | ○ not started |
| 08 | Driver earnings rankWindow functions | easy | ○ not started |
| 09 | Weekly ticket changeWindow functions | medium | ○ not started |
Top-N per group 2
| # | Problem | Level | Status |
|---|---|---|---|
| 10 | Top product per categoryTop-N per group | medium | ○ not started |
| 11 | Top three drivers per cityTop-N per group | hard | ○ not started |
CTEs and recursion 2
| # | Problem | Level | Status |
|---|---|---|---|
| 12 | First-response SLA by channelCTEs and recursion | medium | ○ not started |
| 13 | Agent reporting chainCTEs and recursion | hard | ○ not started |
Gaps and islands 2
| # | Problem | Level | Status |
|---|---|---|---|
| 14 | Days off between shiftsGaps and islands | easy | ○ not started |
| 15 | Longest online streak per driverGaps and islands | medium | ○ not started |
Deduplication 2
| # | Problem | Level | Status |
|---|---|---|---|
| 16 | Keep the first-ingested copy of each eventDeduplication | medium | ○ not started |
| 17 | Duplicate ingest rate by event typeDeduplication | medium | ○ not started |
Sessionisation 2
| # | Problem | Level | Status |
|---|---|---|---|
| 18 | Session ids for app eventsSessionisation | medium | ○ not started |
| 19 | Session summary per userSessionisation | hard | ○ not started |
Date spines 2
| # | Problem | Level | Status |
|---|---|---|---|
| 20 | Daily orders including zero daysDate spines | easy | ○ not started |
| 21 | Daily open ticket backlogDate spines | medium | ○ not started |
Pivot and unpivot 2
| # | Problem | Level | Status |
|---|---|---|---|
| 22 | Tickets by priority and channelPivot and unpivot | easy | ○ not started |
| 23 | SLA hit rate by metricPivot and unpivot | hard | ○ not started |
Slowly changing dimensions 2
| # | Problem | Level | Status |
|---|---|---|---|
| 24 | Price validity rangesSlowly changing dimensions | medium | ○ not started |
| 25 | List price at order timeSlowly changing dimensions | hard | ○ not started |
No problems match those filters.