Real SQLite, compiled to WebAssembly, querying a 1,400-title game-market dataset live in this page — not a static export. Scroll for the analysis, or jump to the bottom to run your own SQL against the database.
A cumulative running total (SUM() OVER ORDER BY) of releases, computed live against the database — useful context before reading any single year's numbers in isolation.
Average positive-rating ratio per genre, joined across the many-to-many game↔genre bridge table. Adventure and Sandbox titles edge out the rest, though the spread across all genres is tight.
Two queries built for a publishing-deal use case: titles with excellent ratings but low visibility (a subquery + HAVING filter), and developers who are reliably good across 3+ releases rather than one lucky hit.
| Game | Price | Rating |
|---|
| Studio | Titles | Avg. rating |
|---|
This isn't a screenshot — it's a real SQLite database sitting in your browser's memory right now. Pick a sample query or write your own SELECT against games, games_deduped, game_genres, or genres, and run it.
Full query files are in the GitHub repo. Highlights from each part of the curriculum this project was built to demonstrate:
Recursive CTE walks a self-referencing genre hierarchy (Games → Action → Shooter) to build full ancestry paths.
RANK() per genre, LAG/LEAD for YoY release change, rolling 3-release average rating per developer.
Self-join to detect same-developer releases within 365 days; CROSS JOIN to scaffold a Genre × Year matrix.
NULL price handling, dirty sentinel values (-1 owners), and de-duplication via MIN(app_id) per natural key — exposed as the games_deduped view queried live throughout this page.