54 hands-on challenges counted from the live bank — 8 Easy, 33 Medium, 13 Hard — every one on the Skillmap's Conditional Logic axis: a CASE that labels each row, a CASE that buckets rows for GROUP BY, and a CASE inside SUM or COUNT for conditional counts, rates and pivots. The Hard ones are Pro; cards marked Free are open to free accounts — your first 10 challenge solves are free — and Pro opens every card. Real datasets, AI tutoring.
Start Practicing Free →Two Easy warm-ups on calculated columns (ROUND and arithmetic, no CASE) share the radar skill and count toward the total; they appear in no section below. CASE is an expression — it goes anywhere a value goes — so the three sections are the three places you will meet it.
A searched CASE — CASE WHEN salary >= 100000 THEN 'Senior' WHEN salary >= 60000 THEN 'Mid' ELSE 'Junior' END AS tier — adds a computed column and groups nothing. Start with Comp Tier Labels and Membership Display Labels, written for the syntax (searched and simple CASE); the Medium ones combine conditions with AND and dates; the Hard ones put the CASE after a window function or a self-join, and Self-Join: Manager Salary Comparison sorts by it — CASE in ORDER BY. For the syntax and the NULL trap, read the CASE WHEN tutorial.
Counted from the challenge bank, September 2026. Easy first, then Medium, then Hard.
Uses: CASE Date Functions AND Date Functions + CASE
Uses: Window Functions NTILE PARTITION BY CASE
CASE builds the bucket — an age band, a tenure band, a rating tier — and GROUP BY counts or averages inside it; grouping by the CASE alias, or repeating the expression, is the whole trick. Start with Spend by Day of Week, the Easy one, then Introduction to CASE WHEN; Movie Rating Tier Breakdown and Age Group Survival Analysis are the classic shape. The Hard ones carry the bucket through CTEs and window functions, and UNION ALL Dedup uses its CASE in ORDER BY to pin a total row last. The GROUP BY tutorial has the mechanics.
Counted from the challenge bank, September 2026. Easy first, then Medium, then Hard.
Uses: LEFT JOIN COALESCE Aggregation GROUP BY
Finance & Banking track · Uses: WHERE LIKE CASE GROUP BY
Real Estate track · Uses: CASE GROUP BY Aggregation String Functions
Finance & Banking track · Uses: JOIN GROUP BY CASE Aggregation
Uses: SELECT CASE COALESCE LEFT JOIN CTE julianday
Manufacturing & Industry track · Uses: CTE JOIN CASE GROUP BY
Put the CASE inside the aggregate — SUM(CASE WHEN status = 'completed' THEN 1 ELSE 0 END) — and one GROUP BY row carries several conditional counts at once: that is the pivot, the rate, the funnel. Start with Conditional Counting with CASE, then Pivot: Order Status by Country, the one written for the pivot; Order Funnel Conversion is the Hard one. The cheat sheet has the pattern in one screen: CASE WHEN inside aggregates.
Counted from the challenge bank, September 2026. Medium first, then Hard.
Uses: String Functions GROUP BY Aggregation ORDER BY
Finance & Banking track · Uses: JOIN GROUP BY Aggregation CASE
Uses: SELECT julianday CASE GROUP BY NULL Handling AVG
Uses: SELECT CASE COALESCE LEFT JOIN CTE julianday
CASE also turns up inside window functions, JOIN conditions and CTEs; the challenges that combine it with those live on the sibling pages — window functions, joins, CTEs and subqueries.