SQL-тренажёр онлайн: 19 задач с проверкой

Найди подходящее жильё, посчитай выручку и собери отчёт по бронированиям. Пиши запросы к готовой базе и сразу проверяй результат. Первые 6 задач бесплатны.

Начать бесплатно после регистрации — 6 бесплатных задач по SQL

Как устроен тренажёр?

  1. Выбираешь задачу — например, «Найди жильё в Москве до 6 000 ₽». У каждой есть описание, требования и подсказка.
  2. Напиши запрос к готовой базе. Схема таблиц доступна рядом с редактором.
  3. Запусти проверку: она сравнит найденные строки, колонки и порядок с ожидаемым результатом.
  4. Прогресс сохраняется в аккаунте: возвращаешься и продолжаешь с того же места.

Что именно проверяет тренажёр

Тренажёр SQL онлайн работает на PostgreSQL прямо в браузере: движок PGlite выполняет твой запрос на той же базе бронирований, что и эталонный. Перед каждым запуском база пересоздаётся из исходного набора данных, поэтому результат не зависит от прошлых попыток, а устанавливать PostgreSQL или ставить расширения не нужно.

Проверка состоит из трёх требований, и каждое видно отдельно: запрос выполняется без ошибки; набор и порядок колонок совпадают с условием; строки совпадают по значениям и порядку. Числа сравниваются как числа, поэтому 6000 и 6000.0 не считаются разными, а вот лишняя колонка, другой псевдоним или другая сортировка — уже расхождение. Если проверка не прошла, тренажёр называет требование, на котором разошлись, и подсвечивает первую отличающуюся ячейку.

Сравнивается результат, а не текст запроса. Решать можно любым способом — подзапросом, JOIN или CASE: засчитается любой запрос, который возвращает нужные колонки и строки в нужном порядке.

Все 19 задач по порядку

19 задач в 6 модулях, примерно два часа практики. Первые два модуля бесплатные, дальше — Premium.

Первые запросы 2 задачи

  1. 01 Собери каталог жилья SELECT, ORDER BY ≈ 4 мин бесплатно
  2. 02 Поставь выгодные варианты первыми ORDER BY по двум полям ≈ 4 мин бесплатно

Точный поиск 4 задачи

  1. 03 Найди жильё в Москве до 6 000 ₽ WHERE, AND, граница <= ≈ 5 мин бесплатно
  2. 04 Подбери жильё для компании WHERE, IN, BETWEEN ≈ 7 мин бесплатно
  3. 05 Найди похвалу без слов IS NULL, псевдонимы AS ≈ 5 мин бесплатно
  4. 06 Сравни цену на гостя арифметика, ROUND ≈ 6 мин бесплатно

Сводные показатели 3 задачи

  1. 07 Оцени рынок по городам GROUP BY, COUNT, MIN, AVG ≈ 7 мин Premium
  2. 08 Оставь города с выбором GROUP BY, HAVING ≈ 7 мин Premium
  3. 09 Собери сводку по статусам GROUP BY, COUNT, SUM ≈ 6 мин Premium

Связи данных 3 задачи

  1. 10 Соедини жильё с хозяевами JOIN двух таблиц ≈ 7 мин Premium
  2. 11 Разверни удобства московского жилья JOIN через связующую таблицу ≈ 8 мин Premium
  3. 12 Собери маршрут гостя JOIN трёх таблиц, даты ≈ 9 мин Premium

Расчёты и условия 3 задачи

  1. 13 Посчитай стоимость бронирований JOIN, вычисляемая колонка ≈ 7 мин Premium
  2. 14 Раздели жильё по ценовым сегментам CASE WHEN ≈ 6 мин Premium
  3. 15 Собери очередь модерации отзывов COALESCE, JOIN ≈ 8 мин Premium

Рабочие отчёты 4 задачи

  1. 16 Покажи загрузку помещений LEFT JOIN, GROUP BY, COALESCE ≈ 9 мин Premium
  2. 17 Собери рейтинг помещений LEFT JOIN, AVG, NULLS LAST ≈ 10 мин Premium
  3. 18 Оцени портфели хозяев JOIN, GROUP BY, HAVING ≈ 9 мин Premium
  4. 19 Собери семейный шорт-лист JOIN, HAVING, COUNT(DISTINCT) ≈ 12 мин Premium

Какие темы и в каком порядке

Порядок задач повторяет то, как SQL применяют в работе: сначала выборка и сортировка, потом фильтры, агрегаты, соединения и отчёты. Все 19 задач решаются на одной базе сервиса бронирований из шести таблиц: users, rooms, reservations, reviews, amenities, room_amenities. Схема таблиц открыта рядом с редактором, поэтому названия колонок не нужно держать в голове.

  1. Первые запросы SELECT нужных колонок и ORDER BY по одному и двум полям — стабильный порядок строк, без которого проверка не сойдётся.
  2. Точный поиск WHERE с несколькими условиями, IN и BETWEEN, проверка на NULL, псевдонимы через AS, арифметика в SELECT и округление ROUND.
  3. Сводные показатели GROUP BY с COUNT, MIN, AVG и SUM, затем фильтр уже посчитанных групп через HAVING — та самая разница с WHERE, о которой спрашивают на собеседовании.
  4. Связи данных JOIN двух и трёх таблиц, связь «многие ко многим» через таблицу room_amenities и арифметика с датами: дата выезда как check_in + nights.
  5. Расчёты и условия вычисляемые колонки по сохранённой цене, CASE WHEN для ценовых сегментов и COALESCE вместо пустого комментария.
  6. Рабочие отчёты LEFT JOIN, который сохраняет помещения без бронирований и отзывов, агрегаты поверх соединений, NULLS LAST в сортировке и итоговая задача с HAVING COUNT(DISTINCT).

Оконных функций, CTE и подзапросов в тренажёре нет: это отдельные темы, они разобраны в справочнике по SQL, а практика на них — в пути «SQL на собеседовании».

Что бесплатно, а что в Premium

Первые два модуля — 6 задач на SELECT, сортировку и фильтры — бесплатны. Нужен только аккаунт, чтобы прогресс сохранялся; карта не нужна. Остальные 13 задач, начиная с агрегатов, открывает подписка Premium.

Бесплатную часть можно решить за один вечер и вернуться к Premium-части позже: тренажёр запомнит, на какой задаче ты остановился. Если хочется сначала попробовать SQL без аккаунта, есть песочница SQL — те же таблицы, но без заданий и проверки.

Кому подходит тренажёр

Как решать задачу: разбор на примере

Возьмём задачу 3 — «Найди жильё в Москве до 6 000 ₽», она бесплатная. Условие: Найди жильё в Москве не дороже 6 000 ₽. Выведи title и price, затем отсортируй результат по цене и названию. В каталоге есть вариант ровно за 6 000 ₽ — не потеряй границу.

Стартовый код уже открыт в редакторе, дописать нужно только условия:

SELECT title, price
FROM rooms
WHERE -- добавь условия
;
  1. Условия два, и оба обязательны, поэтому соединяем их через AND: город равен «Москва», цена не выше 6 000.
  2. Граница включительная: в каталоге есть «Мансарда на Бауманской» ровно за 6 000 ₽. С оператором < вместо <= она пропадёт, и третье требование не пройдёт — именно об этом предупреждает условие.
  3. Сортировка обязательна: ORDER BY price, title. Без неё PostgreSQL не гарантирует порядок строк, и проверка порядка не сойдётся, даже если строки те же.
  4. Псевдонимы менять не нужно: условие просит именно title и price, а проверка колонок сравнивает имена.
SELECT title, price
FROM rooms
WHERE city = 'Москва' AND price <= 6000
ORDER BY price, title;

Результат — 4 строки, от «Бюджетный дом у метро» за 4200 ₽ до «Мансарда на Бауманской» за 6000 ₽, как в примере в начале страницы. Если проверка не прошла, раскрой список требований — тренажёр покажет, какое из трёх не выполнено:

Подсказка к задаче: «Соедини условия оператором AND и используй <= для верхней границы.»

Чем тренажёр отличается от песочницы и пути?

В песочнице можно свободно писать запросы к базе. В тренажёре есть задания, проверка результата и сохранение прогресса.

В пути «SQL для аналитиков» — 25 самостоятельных задач с дополнительными проверками. Тренажёр даёт короткую практику на базе бронирований.

Вопросы про тренажёр

Подойдёт ли SQL-тренажёр, если я начинаю с нуля?

Если SELECT и WHERE уже знакомы, начинай с первых двух модулей: в них 6 бесплатных задач с условиями и подсказками. Если ещё не писал SQL, сначала пройди уроки с нуля.

Что входит в бесплатную часть?

Модули «Первые запросы» и «Точный поиск» — 6 задач. Агрегаты, JOIN, расчёты и рабочие отчёты открываются в Premium.

Нужно ли устанавливать PostgreSQL или регистрироваться?

PostgreSQL устанавливать не нужно: база и проверка работают в браузере. Для входа в тренажёр нужен аккаунт — он сохраняет прогресс; первые 6 задач бесплатны.

Как проверяются решения?

Тренажёр выполняет твой запрос и сравнивает результат с эталонным: колонки, строки и порядок. Если что-то не сошлось — видно, что именно.

Что делать после тренажёра?

Продолжить в пути «SQL для аналитиков»: 25 задач на выборки, объединение таблиц, группировки и работу с датами.