SQL практика онлайн — 480+ задач с автопроверкой

SQL практика — лучший способ подготовиться к собеседованию аналитика. Здесь — 480+ задач с автопроверкой прямо в браузере. От простых SELECT/WHERE до Senior-level (рекурсивные CTE, оконные функции с фреймами, gaps-and-islands). PostgreSQL и SQLite. Бесплатно — первые 5 задач без регистрации.
Содержание (8 разделов)
  1. Зачем нужна именно практика, а не теория
  2. План на 30 дней (5-10 задач/день)
  3. Реальные задачи с собесов 2026
  4. Топ-5 ошибок новичков
  5. PostgreSQL vs SQLite в браузере
  6. Что делает практику эффективной
  7. Чек-лист готовности к собесу
  8. Пример: top-N per group

Зачем нужна именно практика, а не теория

Чтение учебника даёт 10% усвоения. Решение задач — 70%. На собесе спросят: «напиши SQL чтобы посчитать MoM revenue growth» — без 50-100 решённых задач не справишься. Практика тренирует pattern recognition.

План на 30 дней (5-10 задач/день)

Реалистичный график для подготовки Junior с нуля. Решай регулярно, не в last-minute.

ДниТемаЗадач
1-5SELECT/WHERE/ORDER BY/LIMIT25-50
6-10GROUP BY + HAVING + агрегаты30-50
11-15INNER/LEFT/SELF JOIN40-60
16-20Подзапросы и CTE30-50
21-26Окна (ROW_NUMBER, LAG, frames)40-60
27-30Рекурсивный CTE, gaps-and-islands, pivot25-40

Реальные задачи с собесов 2026

Эти типы задач топовые компании РФ регулярно спрашивают на технической секции:

Топ-5 ошибок новичков

Эти ошибки видны в первых же задачах. Зная их — сэкономишь недели.

PostgreSQL vs SQLite в браузере

У нас доступны 2 движка: PostgreSQL 16 (через PGlite WASM) и SQLite (через sql.js). Они почти совместимы, но есть отличия.

ЧтоPostgreSQLSQLite
Окна с RANGEПолноценноТолько базовая
Recursive CTEДаДа
ARRAY типыДаНет
JSON функцииJSONB полноценныйJSON1 extension
STRICT modeПо умолчаниюОпциональный
Регэкспы~ операторREGEXP, опционально

Что делает практику эффективной

Регулярность важнее объёма. 5 задач каждый день эффективнее 50 задач раз в неделю — нейропластичность накапливает паттерны.

Чек-лист готовности к собесу

Если на каждый пункт можешь сказать «да, могу написать за 5 минут» — Middle-собес SQL пройдёшь.

Пример: top-N per group

Классическая задача каждого собеса. Найти топ-3 товара по выручке в каждой категории. Решается через ROW_NUMBER + filter.

-- Топ-3 товара по выручке в каждой категории
SELECT category_id, product_id, revenue
FROM (
  SELECT
    category_id, product_id, revenue,
    ROW_NUMBER() OVER (
      PARTITION BY category_id
      ORDER BY revenue DESC
    ) AS rn
  FROM products_revenue
) ranked
WHERE rn <= 3
ORDER BY category_id, rn;

Частые вопросы

Где практиковать SQL онлайн бесплатно?

У нас на zasqlpython.ru — 5 задач бесплатно без регистрации, автопроверка в браузере (PostgreSQL/SQLite). Кроме того есть открытые англоязычные площадки и бесплатные интерактивные курсы. Удобнее начать с локальных русскоязычных площадок, далее переходить на конкретные пробелы.

Сколько SQL-задач решить до собеса?

Junior: 80-100 задач (SELECT/JOIN/GROUP BY/базовые окна). Middle: 150-200 задач (+CTE, window frames, subqueries). Senior: 300+ задач (+рекурсивные CTE, gaps-and-islands, sessionization, dialect-специфика). Решай 5-10 в день за 2-4 недели.

Какие задачи решать в первую очередь?

Топ-5 must-do: 1) Top-N per group через ROW_NUMBER. 2) Cohort retention. 3) Воронка conversion (4-стадии). 4) MoM/WoW growth через LAG. 5) Self-join иерархия (manager → employee). Эти задачи спрашивают на 80% собесов.

Можно ли практиковать SQL без установки?

Да, в браузере через PGlite (WASM PostgreSQL 16) и sql.js (SQLite). У нас всё работает без установки — нажал «Проверить», получил результат за 100мс. Не нужны Docker, PostgreSQL, DBeaver — только браузер.

Сколько времени уйдёт на практику?

Junior с нуля: 1-2 месяца по 1-2 часа в день (10 задач). Middle: 2-3 месяца. Senior: 3-6 месяцев включая deep dive в EXPLAIN/индексы. Главное — регулярность: 5 задач в день лучше чем 50 раз в месяц.

PostgreSQL или MySQL — что учить?

PostgreSQL — стандарт для аналитика (90% top-компаний РФ). MySQL встречается реже (legacy). Если работаешь с маркетплейсом или fintech — PG. Если b2c-стартап на LAMP — может быть MySQL. В тренажёре доступен PG 16.

Какие задачи самые сложные на собесе?

Топ-3: 1) Sessionization через LAG + cumulative SUM (по таймаут-gap). 2) Gaps-and-islands (серии подряд). 3) Median через NTILE или percentile_cont. Эти задачи отличают Senior от Middle.

Что такое EXPLAIN ANALYZE?

Команда PostgreSQL: показывает реальный план выполнения с временами. Видишь Seq Scan vs Index Scan, JOIN strategy (Hash vs Nested Loop vs Merge), стоимость каждого шага. На Senior-собесе обязательны — спросят как читать план.

Где брать данные для практики?

У нас в тренажёре каждая задача имеет seedData (готовая таблица с данными). Можно также брать публичные датасеты: Kaggle (бизнес-данные), UCI ML Repository, datasets.google.com. Для своих pet-проектов — Github открытые датасеты компаний.

Что делать если не понимаю задачу?

1) Прочитай условие 3 раза, нарисуй expected output на бумаге. 2) Посмотри schema и seedData — отметь связи. 3) Декомпозируй: «сначала фильтр → потом группировка → потом окно». 4) Если за 20 мин не понял — открой подсказку. 5) После решения сравни с эталоном.

Начать практику бесплатно →