SQL-тренажёр онлайн: 19 задач с проверкой
Найди подходящее жильё, посчитай выручку и собери отчёт по бронированиям. Пиши запросы к готовой базе и сразу проверяй результат. Первые 6 задач бесплатны.
Как устроен тренажёр?
- Выбираешь задачу — например, «Найди жильё в Москве до 6 000 ₽». У каждой есть описание, требования и подсказка.
- Напиши запрос к готовой базе. Схема таблиц доступна рядом с редактором.
- Запусти проверку: она сравнит найденные строки, колонки и порядок с ожидаемым результатом.
- Прогресс сохраняется в аккаунте: возвращаешься и продолжаешь с того же места.
Что именно проверяет тренажёр
Тренажёр SQL онлайн работает на PostgreSQL прямо в браузере: движок PGlite выполняет твой запрос на той же базе бронирований, что и эталонный. Перед каждым запуском база пересоздаётся из исходного набора данных, поэтому результат не зависит от прошлых попыток, а устанавливать PostgreSQL или ставить расширения не нужно.
Проверка состоит из трёх требований, и каждое видно отдельно: запрос выполняется без ошибки; набор и порядок колонок совпадают с условием; строки совпадают по значениям и порядку. Числа сравниваются как числа, поэтому 6000 и 6000.0 не считаются разными, а вот лишняя колонка, другой псевдоним или другая сортировка — уже расхождение. Если проверка не прошла, тренажёр называет требование, на котором разошлись, и подсвечивает первую отличающуюся ячейку.
Сравнивается результат, а не текст запроса. Решать можно любым способом — подзапросом, JOIN или CASE: засчитается любой запрос, который возвращает нужные колонки и строки в нужном порядке.
Все 19 задач по порядку
19 задач в 6 модулях, примерно два часа практики. Первые два модуля бесплатные, дальше — Premium.
Первые запросы 2 задачи
- 01 Собери каталог жилья SELECT, ORDER BY ≈ 4 мин бесплатно
- 02 Поставь выгодные варианты первыми ORDER BY по двум полям ≈ 4 мин бесплатно
Точный поиск 4 задачи
- 03 Найди жильё в Москве до 6 000 ₽ WHERE, AND, граница <= ≈ 5 мин бесплатно
- 04 Подбери жильё для компании WHERE, IN, BETWEEN ≈ 7 мин бесплатно
- 05 Найди похвалу без слов IS NULL, псевдонимы AS ≈ 5 мин бесплатно
- 06 Сравни цену на гостя арифметика, ROUND ≈ 6 мин бесплатно
Сводные показатели 3 задачи
- 07 Оцени рынок по городам GROUP BY, COUNT, MIN, AVG ≈ 7 мин Premium
- 08 Оставь города с выбором GROUP BY, HAVING ≈ 7 мин Premium
- 09 Собери сводку по статусам GROUP BY, COUNT, SUM ≈ 6 мин Premium
Связи данных 3 задачи
- 10 Соедини жильё с хозяевами JOIN двух таблиц ≈ 7 мин Premium
- 11 Разверни удобства московского жилья JOIN через связующую таблицу ≈ 8 мин Premium
- 12 Собери маршрут гостя JOIN трёх таблиц, даты ≈ 9 мин Premium
Расчёты и условия 3 задачи
- 13 Посчитай стоимость бронирований JOIN, вычисляемая колонка ≈ 7 мин Premium
- 14 Раздели жильё по ценовым сегментам CASE WHEN ≈ 6 мин Premium
- 15 Собери очередь модерации отзывов COALESCE, JOIN ≈ 8 мин Premium
Рабочие отчёты 4 задачи
- 16 Покажи загрузку помещений LEFT JOIN, GROUP BY, COALESCE ≈ 9 мин Premium
- 17 Собери рейтинг помещений LEFT JOIN, AVG, NULLS LAST ≈ 10 мин Premium
- 18 Оцени портфели хозяев JOIN, GROUP BY, HAVING ≈ 9 мин Premium
- 19 Собери семейный шорт-лист JOIN, HAVING, COUNT(DISTINCT) ≈ 12 мин Premium
Какие темы и в каком порядке
Порядок задач повторяет то, как SQL применяют в работе: сначала выборка и сортировка, потом фильтры, агрегаты, соединения и отчёты. Все 19 задач решаются на одной базе сервиса бронирований из шести таблиц: users, rooms, reservations, reviews, amenities, room_amenities. Схема таблиц открыта рядом с редактором, поэтому названия колонок не нужно держать в голове.
- Первые запросы SELECT нужных колонок и ORDER BY по одному и двум полям — стабильный порядок строк, без которого проверка не сойдётся.
- Точный поиск WHERE с несколькими условиями, IN и BETWEEN, проверка на NULL, псевдонимы через AS, арифметика в SELECT и округление ROUND.
- Сводные показатели GROUP BY с COUNT, MIN, AVG и SUM, затем фильтр уже посчитанных групп через HAVING — та самая разница с WHERE, о которой спрашивают на собеседовании.
- Связи данных JOIN двух и трёх таблиц, связь «многие ко многим» через таблицу room_amenities и арифметика с датами: дата выезда как check_in + nights.
- Расчёты и условия вычисляемые колонки по сохранённой цене, CASE WHEN для ценовых сегментов и COALESCE вместо пустого комментария.
- Рабочие отчёты LEFT JOIN, который сохраняет помещения без бронирований и отзывов, агрегаты поверх соединений, NULLS LAST в сортировке и итоговая задача с HAVING COUNT(DISTINCT).
Оконных функций, CTE и подзапросов в тренажёре нет: это отдельные темы, они разобраны в справочнике по SQL, а практика на них — в пути «SQL на собеседовании».
Что бесплатно, а что в Premium
Первые два модуля — 6 задач на SELECT, сортировку и фильтры — бесплатны. Нужен только аккаунт, чтобы прогресс сохранялся; карта не нужна. Остальные 13 задач, начиная с агрегатов, открывает подписка Premium.
Бесплатную часть можно решить за один вечер и вернуться к Premium-части позже: тренажёр запомнит, на какой задаче ты остановился. Если хочется сначала попробовать SQL без аккаунта, есть песочница SQL — те же таблицы, но без заданий и проверки.
Кому подходит тренажёр
- Аналитикам и тем, кто идёт в аналитику. Половина задач — отчёты с GROUP BY, HAVING и агрегатами, как в реальных выгрузках: сводка по городам, загрузка помещений, рейтинг по отзывам.
- Junior-разработчикам бэкенда. JOIN через связующую таблицу, LEFT JOIN без потери строк, COALESCE и CASE — то, что потом попадает в код запросов и ручной SQL в сервисах.
- Тем, кто готовится к собеседованию. Разница WHERE и HAVING, LEFT JOIN с нулями вместо пропусков, сортировка с NULLS LAST — типовые вопросы интервью. После тренажёра переходи к задачам по SQL с решениями и пути «SQL на собеседовании».
- Если ещё не писал ни одного SELECT — начни с уроков SQL с нуля: тренажёр не объясняет синтаксис, а проверяет результат.
Как решать задачу: разбор на примере
Возьмём задачу 3 — «Найди жильё в Москве до 6 000 ₽», она бесплатная. Условие: Найди жильё в Москве не дороже 6 000 ₽. Выведи title и price, затем отсортируй результат по цене и названию. В каталоге есть вариант ровно за 6 000 ₽ — не потеряй границу.
Стартовый код уже открыт в редакторе, дописать нужно только условия:
SELECT title, price
FROM rooms
WHERE -- добавь условия
; - Условия два, и оба обязательны, поэтому соединяем их через AND: город равен «Москва», цена не выше 6 000.
- Граница включительная: в каталоге есть «Мансарда на Бауманской» ровно за 6 000 ₽. С оператором < вместо <= она пропадёт, и третье требование не пройдёт — именно об этом предупреждает условие.
- Сортировка обязательна: ORDER BY price, title. Без неё PostgreSQL не гарантирует порядок строк, и проверка порядка не сойдётся, даже если строки те же.
- Псевдонимы менять не нужно: условие просит именно title и price, а проверка колонок сравнивает имена.
SELECT title, price
FROM rooms
WHERE city = 'Москва' AND price <= 6000
ORDER BY price, title; Результат — 4 строки, от «Бюджетный дом у метро» за 4200 ₽ до «Мансарда на Бауманской» за 6000 ₽, как в примере в начале страницы. Если проверка не прошла, раскрой список требований — тренажёр покажет, какое из трёх не выполнено:
- запрос выполняется без ошибки
- результат содержит title и price
- остались все подходящие московские варианты, включая цену 6 000 ₽
Подсказка к задаче: «Соедини условия оператором AND и используй <= для верхней границы.»
Чем тренажёр отличается от песочницы и пути?
В песочнице можно свободно писать запросы к базе. В тренажёре есть задания, проверка результата и сохранение прогресса.
В пути «SQL для аналитиков» — 25 самостоятельных задач с дополнительными проверками. Тренажёр даёт короткую практику на базе бронирований.
- Уроки SQL с нуля — начни здесь, если ещё не знаком с SELECT и WHERE
- Песочница SQL — свободные запросы в браузере, без регистрации
- Путь «SQL для аналитиков» — 25 самостоятельных задач с автоматической проверкой
- Путь «SQL на собеседовании» — задачи на подзапросы, оконные функции и CTE
- Задачи по SQL с решениями — 8 типовых задач с собеседования с разбором
- SQL-детектив — игра без регистрации: улики в восьми таблицах, семь запросов до заказчика кражи
- Справочник по SQL — JOIN, GROUP BY, подзапросы, оконные функции с примерами
- Скилл-тест по SQL — быстрая самопроверка перед стартом
- Вопросы на собеседовании по SQL — 15 вопросов с ответами и разборами
Вопросы про тренажёр
Подойдёт ли SQL-тренажёр, если я начинаю с нуля?
Если SELECT и WHERE уже знакомы, начинай с первых двух модулей: в них 6 бесплатных задач с условиями и подсказками. Если ещё не писал SQL, сначала пройди уроки с нуля.
Что входит в бесплатную часть?
Модули «Первые запросы» и «Точный поиск» — 6 задач. Агрегаты, JOIN, расчёты и рабочие отчёты открываются в Premium.
Нужно ли устанавливать PostgreSQL или регистрироваться?
PostgreSQL устанавливать не нужно: база и проверка работают в браузере. Для входа в тренажёр нужен аккаунт — он сохраняет прогресс; первые 6 задач бесплатны.
Как проверяются решения?
Тренажёр выполняет твой запрос и сравнивает результат с эталонным: колонки, строки и порядок. Если что-то не сошлось — видно, что именно.
Что делать после тренажёра?
Продолжить в пути «SQL для аналитиков»: 25 задач на выборки, объединение таблиц, группировки и работу с датами.