πŸ”₯Join 10,000+ SQL detectives

Learn SQL by solving mysteries

Crack cases, write queries, and become a SQL detective. No experience needed.

βœ“ Free to startβœ“ No credit cardβœ“ Minutes to learn

How It Works

Become a data detective in three simple steps. No prior experience required.

1
?

Pick a Case

Browse cases by difficulty and topic. Each mystery is a self-contained investigation with real data to analyze.

2

Query the Database

Write SQL queries in our browser-based editor. Get instant feedback and hints from Chief Fox when you're stuck.

3

Solve the Mystery

Piece together the clues, crack the case, and earn XP. Level up from Rookie to Senior Detective.

Built for the way you actually learn

Forget boring tutorials. QueryCase teaches SQL like an investigation: gather evidence, test theories, and prove what happened with data.

🎯

Learn by Doing

Every case requires real SQL against real datasets. No multiple choice. You write the queries.

🧠

Contextual Learning

Concepts appear when the story demands them. JOINs matter when suspects and alibis don’t match.

πŸ“ˆ

Track Your Progress

Advance from Rookie to Senior Detective as you master filters, aggregations, and subqueries.

⚑

Challenge Mode

Timed cases and harder constraints for when you want pressure. Just you and the evidence.

Case #12 β€’ The Late-Night Keycard

"The alarm was disabled at 22:13. Let's find who entered within five minutes of that, and whether they were on shift."

SELECT p.full_name, a.event_time
FROM access_logs a
JOIN personnel p ON p.id = a.person_id
WHERE a.door = 'EVIDENCE_LOCKER'
AND a.event_time BETWEEN '2026-02-05 22:08' AND '2026-02-05 22:18'
AND p.role IN ('OFFICER', 'FORENSICS');
2 matches near alarm time
50+
Cases to Solve
10K+
Detectives
100%
Free to Start
4.9β˜…
User Rating

Ready to join the precinct?

Your first case is waiting. Start learning SQL today. It's free, and you'll be writing queries in minutes.

Try for free now β€’ No credit card required