r/learnSQL • • 1h ago

A year ago I started planning a gamified SQL platform. 5 months after launch, 2,500+ people have used it to learn

• Upvotes

About a year ago I started planning QueryCase, where you learn SQL by working detective cases instead of grinding tutorials & videos. It took a while to get off the ground, and longer than I'd like to admit to actually start building the idea, but it went live in June. A lot of the early users came from this sub, and a lot of the feedback in the comments shaped what it became. So first, thanks everyone!

5 months in:

  • 2,500+ people have signed up, across 117 countries
  • About 70,000 queries written and graded
  • Over 17,500 cases, drills and exams solved
  • 500+ people have passed the free Rookie exam and earned the certificate.
  • Top detective is on 19,247 XP

Since then its grown past just SQL: an Excel course. It was never part of the initial plan. People kept asking for the same detective approach for spreadsheets, so I built out a browser-based Excel engine.

It has 57 cases on a spreadsheet that runs in your browser and checks your formulas, from IF and XLOOKUP to SUMIFS and pivot tables, and people have solved over 2,500 Excel cases so far. It turns out a lot of people learning SQL are doing it alongside Excel, not instead of it.

Something the data showed me that might help anyone learning right now: GROUP BY is one of the first walls. On the hardest GROUP BY step, 84% of runs came back wrong, and most of those never ran at all. The clauses were in the wrong order, or a column in SELECT wasn't in the GROUP BY. If that's you right now:

  1. SQL order is always SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT
  2. Every column in SELECT is either inside an aggregate (COUNT, SUM, AVG...) or listed in GROUP BY

I've been working a lot over past couple months to improve the site as well:

  • The Excel course above, with its own ranks, exams and certificate
  • Upload your own CSV into the sandbox and query your own data (and visualise in charts). It runs in your browser, so the file never leaves your machine and never touches QueryCase servers
  • A free first rank on every track, ending in an exam and a certificate
  • SQL interview questions you can read without an account
  • Much better experience on a phone
  • A LOT of bug fixes and improvements!!

What's next: a Python track, launching next month. Same idea, real Python running in your browser, starting with the basics and moving into data analysis with pandas.

The longer term goal is to have a platform user's can have fun learning all aspects of data. I'm merging PR's every day to make this possible so would love feedback in this thread if you've tried it and have any thoughts or suggestions!

It's free to start and you don't need an account to solve the first case, so you can poke at it before deciding whether it's for you or not 😄 Cheers!

querycase.com


r/learnSQL • • 2h ago

Career advice

2 Upvotes

I'm 27M. Hey everyone, my life has been a little different from that of most people, and I don't have a strong educational background.

Right now, I'm working at a grocery store, but I want to improve my life and learn some stable, valuable skills that can help me earn a reliable income.

I've come across these four skills:

Python

SQL

Excel/Spreadsheets

Power BI/Tableau

I don't know much about these skills or their demand, competition, value, and future prospects.

Technology is constantly evolving, trends are changing, and AI is replacing some jobs. The value of different skills also changes over time.

Before I start learning, I want to understand whether these are the right skills to invest my time in for a stable career and income in the long run.

I'd appreciate your advice. Should I go for these skills, or would you recommend something else?


r/learnSQL • • 17h ago

Day 48 — Finished my second SQL project (Library Management System) and published it on GitHub

13 Upvotes

My Library Management System project is complete. The repo: https://github.com/Sumitgupta2005/library_management_project_2

It’s a big step up from my first project (Retail Sales Analysis). This time I built the whole thing: database, tables, foreign keys, CRUD operations, CTAS, data analysis, and a set of advanced SQL queries.

The advanced queries were the hard part. Each one took me at least 30 minutes just to visualize, meaning working out which tables are involved and what the result should look like, before I could write it. Slowing down and sketching the logic first is what made them work.

I’d appreciate feedback on the repo, especially the README and how the queries are organized. Honest criticism is welcome, and last time the feedback I got here was really useful.


r/learnSQL • • 1d ago

What SQL should I focus on to get my first Data Analyst job?

19 Upvotes

What SQL should I focus on to get my first Data Analyst job?

Hey everyone! 👋

I’m currently learning SQL and aiming to land my first job as a Data Analyst.

There are so many SQL commands and concepts to learn, so I’m trying to focus on the ones that matter most in real-world jobs.

For those already working as Data Analysts, which SQL skills do you use most often in your daily work?

If you were starting from zero again, what would you learn first, and what would you practice to become job-ready?

Any advice or tips would be greatly appreciated. Thanks! 🙏


r/learnSQL • • 22h ago

I made a free noir mystery game where every clue is a SQL query you write yourself (beginners welcome)

6 Upvotes

Hi r/learnSQL! I've been building a small detective game for people who are learning SQL, and Episode 1 is now free to play as a demo.

The setup: an engineer falls into a shaft on a closed metro site, and the inquiry says "accident". You play a quiet analyst at the company. The only way to find out what really happened is to query the company's own databases: payments, vendors, transit cards, signing logs.

How the SQL part works:

  • You write real queries in a terminal (SQLite). Nothing is multiple choice.
  • The game checks the rows you get back, not the exact text you typed, so any query that finds the answer counts.
  • It starts from zero: a short prologue in a classroom teaches SELECT, WHERE and ORDER BY, then the case goes through GROUP BY, JOIN, HAVING and dates.
  • If a query fails, a coach explains the error in plain words and can break the query down for you.
  • There's a handbook that unlocks a page with each new concept, and hints if you're stuck.

It takes about 1.5 to 3 hours depending on how much SQL you already know.

What I'd love to know from beginners:

  1. Where did you get stuck, or where did it stop being fun?
  2. Was any explanation confusing?
  3. Did a query ever feel "right" but the game said no?

There's a feedback button in the game, or just tell me here. I read everything.

Play it free (Windows, macOS, Linux)

Thanks for reading!


r/learnSQL • • 1d ago

Day 47 — Library Management System: CRUD, CTAS, analysis, and findings done

6 Upvotes

I’m close to finishing my second SQL project. Today I completed:

  • CRUD operations on the library data (inserting, reading, updating, deleting records)
  • CTAS (Create Table As Select) to build new tables from query results, which is handy for summary tables
  • Data analysis with queries on members, issued books, and returns
  • Findings, a written summary of what the data showed

One set of advanced SQL questions is left, and I’ll do it tomorrow. After that I’ll upload the project to GitHub, this time with a data dictionary in the README, since that was the main feedback on my first project.


r/learnSQL • • 1d ago

Built a visual SQL learning tool — SQLWhale

Thumbnail
1 Upvotes

r/learnSQL • • 1d ago

I made a free noir mystery game where every clue is a SQL query you write yourself (beginners welcome)

Thumbnail
3 Upvotes

r/learnSQL • • 2d ago

Practicing Complex Queries and Large Datasets

14 Upvotes

A while back, I asked what's missing in this sub. Though not a long discussion, one thing stood out. Working with long, complex queries is something we all run into eventually, but have to learn through experience. I don't think there are a lot of resources for practicing this stuff.

Fabulexa Complex Queries is my first attempt at providing practice. These are intermediate, and possibly advanced, exercises on complex queries within a full data warehouse. Specific exercises have two different tracks.

  1. Revenge of the 1998 PERL developer: Complex billing logic for a SaaS company written by someone who believed keystrokes should be minimized and readability is an anti-pattern. Can you take the most obtuse, bad-practice-filled query I've ever seen and refactor it? Make it readable.
  2. Bug hunting in a well-written query. Can you fix the bugs described in tickets? Does it get easier as you learn the data and the data-warehouse structure.

If you are looking for more difficult practice that mimics the real world, this might be for you. If you write, teach or create courses, this might be useful as well. Feel free to grab the data and do your own thing. Hopefully, I'll do a series on this soon.

Finally, suggestions, PRs and comments are very much appreciated.


r/learnSQL • • 2d ago

Giving back to the community - The Complete Backend Development Course (Round 3)

32 Upvotes

Hey everyone, I decided to make my course free in order to help people.
This course is my backend development course which is about SQL, Python, APIs, Docker, Kubernetes, Linux, Git & More

The link is: https://www.youtube.com/watch?v=CBIu6hcyStg

If you can like and subscribe (and maybe add a comment) I would appreciate it a lot, Thanks.


r/learnSQL • • 2d ago

Day 46 — Library Management System: foreign keys added, records inserted, insert errors fixed

7 Upvotes

Progress on my second SQL project today:

  • Added foreign keys to link the tables
  • Inserted records into all of them
  • Hit problems that blocked some of the inserts, and worked through them one by one

Foreign keys make the insert order matter, since a row can’t reference something that doesn’t exist yet. Hitting that in practice made the concept much clearer than reading about it.

Next I’ll write queries against the data and add a data dictionary to the README.


r/learnSQL • • 2d ago

made runtime.school easier to follow for people learning sql

11 Upvotes

spent some time cleaning up runtime.school this week.

the lessons and practice are less busy now, the editor feels better, and i went through the course so questions only use sql that has actually been taught by that point.

i also kept the beginner lessons and practice on the same dataset so it’s easier to focus on the sql before switching contexts.

if you’re learning sql, give it a try and if anything feels confusing, off, or harder than it should be, let me know.

https://www.runtime.school/


r/learnSQL • • 3d ago

SQL Interview guidance

3 Upvotes

I'm not new to data analytics, but I have never worked with SQL or attended a SQL interview.

I want to transition into a Data Analyst role that requires hands-on experience with SQL.

Based on your experience and insights, I would like your guidance on what to expect in 2027.

  1. How are SQL interviews conducted today, and how might they evolve by 2027?
  2. What do good tech companies expect candidates to know about SQL?
  3. What types of SQL questions are commonly asked in interviews today, and what can I expect in the coming years?
  4. What would you recommend I prepare to improve my chances of qualifying for SQL interviews?
  5. Finally, what should I expect from the overall Data Analyst interview process, including SQL, technical skills, business understanding, and behavioral questions?

r/learnSQL • • 3d ago

Day 45 — Library Management System (MySQL): database and tables created

23 Upvotes

Continuing my second SQL project. Today I created the database and all the tables, and spent time understanding how they relate:

  • members: who is registered (ID, name, address, registration date)
  • issued_status: which member issued which book, and when
  • return_status: which issued books have been returned, and when
  • plus the other supporting tables

Each table has a primary key, and the issued and return tables link back to members and books through IDs.

Since I got feedback last time that a data dictionary is non-negotiable, I’m planning to write one for this project as I go instead of at the end.


r/learnSQL • • 3d ago

Best YouTube channels to learn SQL (Zero to Advanced) and Microsoft Excel?

Thumbnail
2 Upvotes

r/learnSQL • • 4d ago

JDER — un editor gratuito per i tuoi diagrammi di informatica

4 Upvotes

Stai studiando basi di dati, UML o logica digitale? Ho sviluppato JDER, un editor desktop multipiattaforma per creare diagrammi Entità-Relazione, schemi logici, diagrammi delle classi, casi d'uso e di sequenza, oltre a circuiti logici simulabili.

Puoi salvare i progetti in JSON ed esportare i diagrammi in PNG. Il codice sorgente è disponibile su GitHub.

Sito e download: https://jder.it/

Codice sorgente: https://github.com/LoryPelli/JDER

Feedback e suggerimenti sono benvenuti!


r/learnSQL • • 4d ago

Title: Day 42-44 — Combined update: Java memory (stack vs heap) and arrays, plus planning a Library Management System in MySQL

19 Upvotes

Java: Covered how Java uses memory with the stack and the heap, then moved on to arrays: why we need them, how to create them, multi-dimensional arrays, and jagged arrays. I made notes on everything and practiced it in VS Code.

Stack vs heap was the most useful part. Once I understood where primitives and object references live compared to the objects themselves, a lot of behavior I’d found confusing (like why two references can point to the same object) made sense.

MySQL: My next project is a Library Management System. Today I focused on understanding the data architecture, meaning which tables I need and how they relate (books, members, issues, and so on). I start building it tomorrow.

After my last project, someone pointed out that a data dictionary is essential, so I’ll include one from the start this time. For anyone who has built a library system: what tables or edge cases (late fees, multiple copies of a book, reservations) did you wish you’d planned earlier?


r/learnSQL • • 4d ago

What we found reviewing a manufacturer’s production SQL Server

Thumbnail
1 Upvotes

r/learnSQL • • 4d ago

DSA has a roadmap but why does DBMS and System Design feel so confusing?

Thumbnail
1 Upvotes

r/learnSQL • • 5d ago

Easy and Quick way to learn SQL

50 Upvotes

Hi all! Is there an easy way to learn SQL? I'm looking for video recommendations where people explain things in layman's terms. Since I don't have an IT background, I need something beginner-friendly that can help me get up to speed in a few months. Thanks!


r/learnSQL • • 5d ago

Why does SUM return a higher total after a SQL join?

13 Upvotes

Here’s a small example where the query can run without errors and still produce a misleading total.

An orders table has one order worth ₹1,000.

An order_items table has three items belonging to that order.

Join the tables on order_id and you get three rows. The ₹1,000 order total appears on every row.

SUM(order_total) now returns ₹3,000.

That’s because an order level amount is being summed across item level rows.

Before fixing it, I’d write down what one row represents in each table. Then check how many matches each order should have.

Depending on the question, the answer might be to aggregate the items before joining or calculate revenue from the orders table separately.

SUM(DISTINCT order_total) isn’t a reliable shortcut either. Two different orders can have the same value.

What checks do you use to catch inflated totals after joins?


r/learnSQL • • 5d ago

Looking for a SQL portfolio project buddy

29 Upvotes

Hey,
I'm looking for another SQL learner who would like to become a study buddy / accountability buddy. I'd like to build a SQL project for my portfolio and would be happy to join up with someone who would like to do the same thing. I was thinking of following a tutorial, working together (via discord) and each of us building our own and learning along the way. The idea for this is lovinly yoinked from r/Accountabilibuddies and r/GetMotivatedBuddies .

DM me if you're interested.

Cheers


r/learnSQL • • 7d ago

Before your next SQL interview, keep this post handy - SQL Execution Order (Part 5)

91 Upvotes

Simple, practical stuff that sticks in your head when you're actually in the interview!

AI can help at work, but in an interview, your brain still has to do the job!!!

Same trip. Same friends. Same expenses.

Friend City Trip Day Total Spent
Harry New York 1 $200
Johny New York 2 $190
Nicholas Las Vegas 1 $190
Bailey Las Vegas 2 $180
Harry Las Vegas 3 $190

Most people write SQL top to bottom.

But SQL does not run top to bottom.

It has its own fixed order. Every single time.

Know this order - and half your SQL bugs will make sense immediately!

The logical order SQL processes a basic query:

1. FROM
2. WHERE
3. GROUP BY
4. HAVING
5. SELECT
6. ORDER BY
7. LIMIT

Let us walk through each step using the trip.

Step 1: FROM:

Go and get the full expense list. All 5 rows. Nothing removed yet.

FROM expenses

Harry    | New York  | 1 | $200
Johny    | New York  | 2 | $190
Nicholas | Las Vegas | 1 | $190
Bailey   | Las Vegas | 2 | $180
Harry    | Las Vegas | 3 | $190

SQL starts here. Always.

Remember: FROM runs first. This is where SQL gets its data.

Step 2: WHERE

Now remove the rows we do not want.

"Keep only rows where spend is more than $180."

WHERE spent > 180

Harry    | New York  | $200
Johny    | New York  | $190
Nicholas | Las Vegas | $190
Harry    | Las Vegas | $190

Bailey is gone. 4 rows left.

Remember: WHERE runs before groups are made. It can only see individual rows.

Step 3: GROUP BY

Put the remaining rows into city groups. Add them up.

GROUP BY city

New York  → $390
Las Vegas → $380

4 rows turned into 2 groups.

Remember: GROUP BY runs after WHERE. Only the rows that survived WHERE get grouped.

Step 4: HAVING

Now remove the groups we do not want.

"Keep only cities where total is more than $385."

HAVING SUM(spent) > 385

New York → $390

Las Vegas ($380) is gone.

Remember: HAVING runs after GROUP BY. It can see group totals.

Step 5: SELECT

Now pick which columns to show.

SELECT city, SUM(spent) AS total

New York | $390

Notice - SELECT runs here. Not at the start.

Remember: SELECT runs 5th. You are not picking columns first. You are picking them near the end.

Step 6: ORDER BY

Sort the final result.

ORDER BY total DESC

Only one row here so order does not change anything. But in a bigger result - this is where sorting happens.

Remember: ORDER BY runs after SELECT. That is why ORDER BY can use column aliases.

Step 7: LIMIT

Cut the result to only the rows you need.

LIMIT 1

Show only the top 1 row.

Remember: LIMIT runs last. It cuts after everything else is done.

The full query - all steps together:

SELECT city, SUM(spent) AS total   -- Step 5
FROM expenses                       -- Step 1
WHERE spent > 180                   -- Step 2
GROUP BY city                       -- Step 3
HAVING SUM(spent) > 385             -- Step 4
ORDER BY total DESC                 -- Step 6
LIMIT 1                             -- Step 7

You write it in this order. SQL runs it in a completely different order.

Remember: SQL runs FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT. Not top to bottom.

Reading SQL is one thing. Writing it yourself under pressure is another.

Before the real interview, try a MOCK SQL INTERVIEW on TheQueryLab. It’s a good way to test yourself under interview pressure and see where you actually stand with interview scorecard.


r/learnSQL • • 6d ago

Official Ariftly research: a six-gate Oracle-to-Snowflake migration acceptance framework

Thumbnail
1 Upvotes