From your first SELECT
to SQL you trust

Learn by doing: automatically graded tasks on real tables, story-driven courses, and questions asked at interviews in Yandex, Ozon, Avito and other companies.

Free tier, no card. Progress is saved from the very first task.

1156
auto-graded tasks
926
datasets
4
SQL dialects
12
tracks
Yandexfrom an interviewMEDIUM
Top five drivers by number of rides

For every driver, count the rides and return the five leaders.

drivers
idnamecityrating
rides
iddriver_idpricestarted_at
SELECT d.name,
       COUNT(r.id) AS ride_count
FROM drivers d
JOIN rides r ON r.driver_id = d.id
GROUP BY d.name
ORDER BY ride_count DESC
LIMIT 5;
JOIN · GROUP BY · LIMIT
Answer accepted+25 Power
nameride_count
Sergey3
Maria2
Andrew2
Olga1
Daniel1
questions from real interviews
  • Google
  • Meta
  • Amazon
  • Microsoft
  • Tesla
  • Spotify
  • Uber
  • Twitter (X)
  • Booking
  • Netflix

Tasks that came up at these companies interviews. The companies are not partners of SQL Arena.

Every answer runs against real tables
Every answer runs against real tables
sqlarena=# \dt
bookingscustomersemployees
eventsorder_itemsorders
paymentsproductssessions
shipmentstransactionsusers

Each task has its own dataset: a schema, rows, and a hidden check of your result.

SQL first. Then wherever you need.

No choosing where to start: the second course continues the first, and the rest come once SQL is already written.

From zero2 courses · 25 chapters · 160 lessons
01→ Start here

SQL from zero

Theory, a walkthrough and a task after every lesson — from your first SELECT to window functions and transactions.

12
modules
77
lessons
16
free lessons
  1. 01SELECT: filtering and sorting
  2. 02JOINs and aggregates
  3. 03Subqueries, CTEs, window functions
  4. 04DML, DDL, EXPLAIN and transactions
I can get data out and reshape it
02

Data analyst from zero

Python and pandas right in the browser, product metrics and eleven investigations of the kind: the metric dropped — find out why.

13
chapters
83
lessons
11
free lessons
  1. 01Python: exactly as much as you need
  2. 02pandas: cleaning, joins, summaries
  3. 03Metrics, segments, cohorts
  4. 04A/B tests, statistics, dashboards
I can investigate data and make decisions
Already write SQL4 courses · 32 chapters · 135 lessons

The BigQuery course

arrays in a cell, QUALIFY, paying by bytes

8 chapters · 27 lessons
StartThe BigQuery course

The performance course

EXPLAIN, scans, indexes, plans

10 chapters · 49 lessons
StartThe performance course

The ClickHouse course

funnels, columnar arrays, price of an answer

8 chapters · 41 lessons
StartThe ClickHouse course

The regex course

patterns, validation, log parsing

6 chapters · 18 lessons
StartThe regex course
Already write SQL and Python2 courses · 20 chapters · 117 lessons

The Data Engineering course

pipelines, warehouse, backfill

10 chapters · 58 lessons
StartThe Data Engineering course

The Kafka course

the log, consumer lag, exactly-once

10 chapters · 59 lessons
StartThe Kafka course

Practice problems run out. Interviews do not.

The catalog carries questions asked at real technical interviews — from a warm-up to HARD window-function problems.

СбербанкEASYfree
Total balance per client

A warm-up: group the accounts and sum the balances.

SUM(balance) … GROUP BY client_id
OzonMEDIUM
Employees paid more than their manager

A tech-screen classic: compare a row with itself through a subquery.

WHERE salary > (SELECT … manager)
WildberriesHARD
Top 3 night-time users per city

A window function, a time slice and ranking inside each group.

ROW_NUMBER() OVER (PARTITION BY city …)
Interview mode

The timer runs on the server, the browser is locked and there are no hints. After the session you get a report: tab switches, focus losses, paste attempts.

Open the interview tasks
01
server-side timer
02
browser locked
03
post-session report

It all happens here. Nothing to install.

PostgreSQL, MySQL, ClickHouse and BigQuery — four separate sandboxes. The same question looks different on each, and you get to see it.

SELECT city, sum(amount) AS revenue
FROM orders
WHERE created_at >= now() - INTERVAL 30 DAY
GROUP BY city
ORDER BY revenue DESC
LIMIT 3
SETTINGS max_threads = 4;

ClickHouse: lower-case functions, and SETTINGS controls execution.

resultcorrect
cityrevenue
Москва4 812 304
Санкт-Петербург2 117 880
Казань934 215

27 interface languages, light and dark themes.

When ordinary practice is not enough

A one-on-one duel over a single task, a weekly leaderboard and fourteen ranks your hero grows through.

1v1 duelshared clock
An Expert-rank hero
You
solved
01:38
VS
A Legend-rank hero
artem_sql
solving…
01:38
Start a duelA subscription is required to take a seat in a match.
Weekly top
leaderboard resets Mon 00:00
Артём К.25 472
Мария С.15 679
Denis P.10 563
4Ольга Ж.9 595
5Kirill V.7 757
  • EASY · 10 power
  • MEDIUM · 25 power
  • HARD · 50 power
  • EXPERT · 75 power
Premium solve×1.5
Junior-rank hero
Junior
0
Middle-rank hero
Middle
1 000+
Senior-rank hero
Senior
3 000+
Lead-rank hero
Lead
6 000+
Architect-rank hero
Architect
10 000+
Expert-rank hero
Expert
15 000+
Legend-rank hero
Legend
24 000+
Titan-rank hero
Titan
40 000+
Mythic-rank hero
Mythic
60 000+
Leviathan-rank hero
Leviathan
80 000+
Ascendant-rank hero
Ascendant
100 000+
Immortal-rank hero
Immortal
120 000+
Eternal-rank hero
Eternal
140 000+
Primordial-rank hero
Primordial
160 000+

Harder task × first try × interview mode = faster rank. Premium solves grant ×1.5 Power — the boost is permanent.

Go through the topic again — then drill it

Two tools for exactly that: a generator that builds tasks for your weak topic, and a syntax reference.

AI task generation

It reads your recent submissions, finds the topic you keep missing and builds a task for it, with its own schema and grading.

task-generator
$ ai.generate(adaptive=true)
→ scanning your last 40 submissions…
→ weakest area: window functions (34%)
→ HARD: 5 cleared, 88% lately → HARD it is
→ building schema: orders, customers, line_items
✓ ready: "Three priciest orders per customer"
SQL reference

Short articles on the constructs — with examples, not a retelling of the docs.

Window functions: row frames

How ROWS and RANGE change what an aggregate sees inside the window.

SUM(x) OVER (PARTITION BY city ORDER BY d ROWS 6 PRECEDING)
Open the reference

Finish the course. Then prove it on the exam.

The certificate is not a signup gift but the result of a passed exam: it carries a QR check and a public page.

Examproctored
time left
24:54
answered
11/14
  • 14 tasks against the clock, no hints
  • Three levels: Foundations, Practitioner, Expert
  • Focus losses and paste attempts are recorded
Take the exam
SQL Arena
Certificate

Issued to

Ragnar Lothbrok

Practitioner

Skills verified

SubqueriesCTEWindow functionsHAVINGCASEDMLMulti-table JOIN

Date

6/1/2026

Verification code

B2D6118AF7C9

Score

100%

Scan to verify

sql.coderang.dev

A sample Practitioner-level certificate. A real one verifies by QR code.

Free forever. Premium when you want more.

No silent charges: you pay for a period and train. The longer the period, the cheaper the month.

Free
$0
  • Every Easy-level task — interview easies included
  • The first chapters of the courses
  • Sandbox and all four dialects
  • Leaderboard, streaks and achievements
Start for freeContinue training
Premium
from $7.2/mo
one-time payment per period · no auto-renewal
  • All Medium, Hard and Expert tasks — interview questions included
  • An unlimited AI mentor and the community's top solutions
  • Unlimited Interview mode, exams and certificates
  • +50% Power for every solve — permanently
See plans

The short version

Is it free?

Yes. Every Easy-level task — including easy questions from real interviews — plus ranks, your rank hero, the sandbox and the leaderboard: free forever, no card. Premium unlocks the harder tiers (Medium, Hard, Expert), unlimited AI and Interview mode.

Which SQL dialects are supported?

PostgreSQL, MySQL and ClickHouse — we're the only trainer with ClickHouse problems. Your solution runs on a real database and is graded instantly.

Is it good for interview preparation?

Yes. There's an Interview mode with a timer and focus tracking — like a real tech screen — plus problems from Google, Meta, Microsoft, Tesla and other companies' interviews.

What is AI problem generation?

The AI builds unique SQL tasks for your level and chosen topics (JOINs, subqueries, window functions) with a ready dataset and a reference solution — and it sees where you go wrong most often.

Do I need a card? Is there auto-renewal?

Free needs no card at all. Premium is a one-time payment per period (from $7.2/mo) — no auto-renewal, nothing charged behind your back.

SQL starts making sense the moment you write it

Two minutes to your first task. The route after that is yours.

Solve your first taskBack to training
You can start for free, no card needed.
Primordial — the top-rank hero, 3D model

Every player gets a rank hero, and it evolves with your rank.