A real database, one second away
Postgres 16 boots in your browser through WebAssembly. No Docker, no connection string, no “works on my machine.” Break it on purpose, then hit restore.
Watching a course teaches you to recognise SQL. Writing it against a database that pushes back teaches you to write it. There is a real Postgres instance in this page — solve something in it before you decide anything.
Return the 5 customers who placed the most orders, biggest first.
▸ Ready. Hit Run to execute against the sandbox.
Engineers and analysts from these teams practise here
// the_honest_part
Fourteen hours of video, a lot of nodding, and not one query that ever touched a database. Recognition is not recall.
You can solve a clever question on a two-column table. Then someone hands you a schema with forty tables and a deadline, and the cleverness has nowhere to go.
The query runs and returns a number. You are about to put that number in front of your team, and you have no way to tell whether it is the right one.
All three fail the same way: you were never made responsible for a query. Here, every challenge runs against a live database, and a wrong answer comes back with the reason.
// the_loop
That fourth step is the one every other format skips. It is also the only one that changes how you write the next query.
Six modules and sixteen chapters, ordered so each one earns the next. The path remembers where you left off, so you never restart at SELECT again.
SELECT → JOIN → aggregation → subqueries → windows → tuning
A Postgres instance boots in your browser in under a second. Same engine, same syntax errors, same EXPLAIN output you will get in production.
postgres 16 · northwind, hr, sales datasets · reset any time
Grading compares your result set, then walks the query plan with you. A wrong answer returns the specific thing you missed — never a bare red X.
result diff · plan walkthrough · targeted hint
// what_you_get
All of them come down to the same thing: there is a database on the other side of the screen, and it has opinions about your query.
Postgres 16 boots in your browser through WebAssembly. No Docker, no connection string, no “works on my machine.” Break it on purpose, then hit restore.
Tagged by company and by concept, so you can drill the exact thing you keep getting wrong.
One short exercise a day. The counter is embarrassingly effective.
96 day streak · longest yet
EXPLAIN ANALYZE, annotated line by line, so you learn what “slow” costs before a production incident teaches you.
Ask for help and you get a question back. Ask for a review and it goes after correctness, style and cost — in that order.
Postgres, MySQL and SQLite, with the syntax gaps taught rather than hidden.
// the_fair_comparison
Reasonable question, and the honest answer is that for a single query on a schema you already understand, any of them is fine. The gap opens when you have to be the one who is right.
| What you need | Video courses | Puzzle sites | AI assistants | SQL Uptime |
|---|---|---|---|---|
Runs against a real database Puzzle sites do this too. It is table stakes, not a differentiator. | no | yes | no | yes |
Tells you why the query is wrong A red X is not feedback. | no | ~ sort of | yes | yes |
Orders the material so each idea earns the next This is the one thing a good course is genuinely great at. | yes | no | no | yes |
Teaches performance, indexes and EXPLAIN | ~ sort of | no | ~ sort of | yes |
Interview sets tagged by company | no | yes | no | yes |
Leaves you with something an employer can verify A completion certificate nobody checks is not proof. | ~ sort of | no | no | yes |
Useful when you do not know what to ask yet An assistant answers the question you have. It cannot tell you which one you should be asking. | ~ sort of | no | no | yes |
Runs against a real database
Puzzle sites do this too. It is table stakes, not a differentiator.
Tells you why the query is wrong
A red X is not feedback.
Orders the material so each idea earns the next
This is the one thing a good course is genuinely great at.
Teaches performance, indexes and EXPLAIN
Interview sets tagged by company
Leaves you with something an employer can verify
A completion certificate nobody checks is not proof.
Useful when you do not know what to ask yet
An assistant answers the question you have. It cannot tell you which one you should be asking.
// in_their_words
I had written SQL for four years and never once read a query plan. The EXPLAIN module was uncomfortable in the way that actually means you are learning something. I found an index we had been missing for two years in the first week.
The hints are the whole product. It never hands you the answer, it just tells you which clause you are missing, and then you feel stupid for about four seconds and never forget it again.
Did the interview set for two weeks before my Stripe loop. Three of the questions were close enough that I recognised the shape immediately.
We onboard analysts with the assigned path now. Ramp time went from about six weeks to two, and I stopped being the SQL help desk.
The streak counter is genuinely manipulative and I am on day 96, so it works.
// pick_one_at_signup
Stop writing the N+1 and calling it a day. Joins, aggregation and the tuning that keeps them off the incident channel.
→ Ship queries you can defend in review
Move off spreadsheets in weeks, on real datasets, with feedback on every query and nothing to install.
→ Answer your own questions
Company-tagged questions in a live sandbox. Turn on timed mode when you want the pressure to feel real.
→ Walk in having already done it
Assign a path, watch the dashboard, and stop answering the same SQL question in Slack every Tuesday.
→ Level the whole team at once
// proof_of_work
Most course certificates prove you pressed play. This one is issued after all sixteen chapters are graded against a live database, and the verification page lists the specific concepts you were tested on — so a hiring manager can check the claim rather than take it.
Certificate of completion
Tested on
// pricing
The free tier is not a demo — it is three weeks of real practice. Upgrade when you want the interview sets and the worked solutions, not because a modal blocked you mid-lesson.
Enough to find out if this works for you.
No solutions, interview sets or certificate
For the people who need this to stick.
For onboarding analysts without a help desk.
Cancel in one click. Fourteen-day refund, no email thread required. Your streak and progress stay yours on the free tier. Read the FAQ
// before_you_ask
No. The database runs inside your browser tab through WebAssembly — it is a genuine Postgres build, not a simulator. Nothing is installed, nothing connects to a server you have to configure, and closing the tab throws it away.
Ten graded challenges a day, the full sandbox, and the first two modules, with no card required. That is roughly three weeks of steady practice before you hit anything. Pro exists for people who want the interview sets, the worked solutions and the certificate.
There is a placement check that skips you ahead. Most working engineers land somewhere in module four and find the window function and query plan chapters are the ones that actually bite. You can also jump straight into the interview sets.
PostgreSQL by default, with MySQL and SQLite available on Pro. Where the dialects genuinely differ — string aggregation, date maths, upserts — the lesson shows you both instead of pretending there is one SQL.
It is worth exactly as much as what it certifies, which is why it is only issued after all sixteen chapters are graded, and why the public verification page lists the specific concepts you were tested on. Treat it as evidence, not as a qualification.
Yes. Teams starts at five seats with invoice billing, SSO, assigned paths and a progress dashboard. Most managers buy it as onboarding for new analysts rather than as a perk.
You drop to the free tier and keep your streak, your history and any certificate already issued. Refunds inside fourteen days are one click in billing settings.
Still unsure? hello@sql-uptime.dev — a person answers.
$ sql-uptime start --free
Ten graded challenges a day, the full Postgres sandbox, and no card. If it is not working for you by challenge ten, nothing has been spent.
No credit card · cancel in one click · 14-day refund on Pro
10 challenges a day,
free forever