Практика SQL на настоящей базе с проверкой каждого запроса
Пишите запросы в браузере к базе авиакомпании на 4,1 млн строк. Каждый ответ сверяется с эталоном — от первого SELECT до оконных функций, retention и задач с собеседований.
Без карты. Вся теория и первый модуль бесплатны; пропуск открывает все курсы Nomto.
- 82 урока, 248 задач
- Синтаксис PostgreSQL
- ИИ-тьютор в каждой задаче
-- пять маршрутов с наибольшим числом пассажиров
SELECT a.city || ' → ' || b.city AS route,
COUNT(*) AS passengers
FROM ticket_flights tf
JOIN flights f ON f.flight_id = tf.flight_id
JOIN airports a ON a.airport_code = f.departure_airport
JOIN airports b ON b.airport_code = f.arrival_airport
GROUP BY route
ORDER BY passengers DESC
LIMIT 5;| route | passengers |
|---|---|
| Moscow → St. Petersburg | 37575 |
| St. Petersburg → Moscow | 35427 |
| Moscow → Novosibirsk | 29063 |
| Novosibirsk → Moscow | 28239 |
| Moscow → Sochi | 23098 |
5 строк
Два трека: с нуля до уровня собеседования
Если SQL для вас новый, начните с основ. Если JOIN и GROUP BY уже пишете — сразу в продвинутый трек.
Основы SQL
Всё, что аналитик пишет каждый день, в том порядке, в котором это складывается.
- Как устроены данные
- SELECT: первые запросы
- WHERE: фильтрация строк
- Функции: числа, строки и даты
- GROUP BY и HAVING
- JOIN
- CASE и NULL
- Подзапросы и CTE
- UNION и два итоговых проекта
Продвинутый SQL
Запросы, которые на самом деле нужны в аналитике и спрашивают на собеседованиях.
- Оконные функции: ранги, доли, накопительные итоги
- Календари дат без пропусков
- Self join, full join и рекурсия
- Рамки окон и перцентили
- Gaps and islands (серии)
- Сессии и пути
- ROLLUP и CUBE
- JSON и массивы
- История изменений (SCD2)
- Качество данных
- DAU, retention и LTV
- Эксперименты и A/B-тесты
- Задачи с собеседований
- Два итоговых проекта
Короткая теория, разбор и три задачи
Короткая теория
Одна идея на урок, пример запроса, который можно запустить, и ключевые мысли.
Разбор по строкам
Готовый запрос, разобранный построчно: что делает каждая часть и зачем она нужна.
Три задачи
Разминка, основная и со звёздочкой. К каждой — стартовый запрос, две подсказки и решение, когда оно нужно.
Задача и что скажет проверка
Запрос, который выполнился, не всегда верный. Проверка сравнивает ваш результат с эталоном и говорит, что не так: не та колонка, лишние строки, порядок.
Разминка · GROUP BY и HAVING
В каких аэропортах больше 400 вылетов за весь период? Отсортируйте по flights_count по убыванию.
Ожидаемые колонки: departure_airport flights_count
FROM flights
Ваш запрос
SELECT departure_airport,
COUNT(*) AS flights_count
FROM flights
GROUP BY departure_airport
HAVING COUNT(*) >= 400
ORDER BY flights_count DESC;✗ 19 строк вместо 18. Лишняя — Хабаровск (KHV) ровно с 400 вылетами: «больше 400» — это >, а не >=.
✓ HAVING COUNT(*) > 400 — Верно: 18 аэропортов. Больше тысячи вылетов только у пяти.
Настоящая база авиакомпании, а не десять игрушечных строк
Рейсы, бронирования, билеты и посадочные талоны, а ещё программа лояльности, события приложения и A/B-эксперименты — чтобы в аналитических задачах было что анализировать.
14 таблиц
4,1M строк
- Основа — демо-база Postgres Professional, классика для обучения SQL.
- Вы пишете на PostgreSQL — диалекте, на котором работает большинство аналитиков.
- Запросы выполняются в песочнице только на чтение: ничего не нужно ставить и ничего нельзя сломать.
Помощь, когда застряли, и место для экспериментов
ИИ-тьютор в каждой задаче
Спросите, почему запрос не проходит. Тьютор видит задачу и ваш результат и наводит на исправление, а не выдаёт ответ.
Песочница
Свободная консоль по всей базе со схемой таблиц рядом. Задавайте свои вопросы к данным.
Справочник по синтаксису
Короткие карточки по каждой конструкции и функции курса, ссылки на них — прямо из уроков.
Для тех, кому SQL нужен в работе
- Начинающие и junior-аналитики данных
- Те, кто готовится к собеседованию по SQL
- Маркетологи и продакт-менеджеры, которым нужны ответы без очереди к аналитику
Начните бесплатно, откройте всё пропуском
Бесплатно
- Вся теория и разборы
- Первый модуль «Основ SQL»
- 30 проверок, чтобы попробовать курс (10 без аккаунта)
- 3 вопроса тьютору (1 без аккаунта)
С пропуском Nomto
- Все 25 модулей и 248 задач
- Проверки без дневного лимита
- Больше вопросов тьютору
- И все остальные курсы Nomto
Один пропуск на все курсы Nomto. Цены — в кабинете при оплате.
Объяснения на русском, английском, испанском, китайском, португальском или вьетнамском
SQL везде одинаковый. Теория, подсказки и тьютор говорят на языке, который вы выберете в кабинете; названия таблиц и колонок не меняются.
Вопросы
Нужно что-то устанавливать?
Нет. Каждый запрос выполняется из браузера на нашей базе в песочнице только на чтение. Нужен только браузер; писать SQL удобнее с ноутбука, чем с телефона.
Подойдёт, если я начинаю с нуля?
Да. «Основы SQL» начинаются с того, как устроены данные в таблицах, и первого SELECT. Каждый урок — короткая теория, разбор и три задачи от разминки до задачи со звёздочкой.
Какой диалект SQL?
Синтаксис PostgreSQL — на нём работает большинство аналитиков. Всё выученное с небольшими отличиями переносится на ClickHouse, BigQuery, Snowflake и MySQL.
Есть ли ответы к задачам?
Да. У каждой задачи две подсказки и эталонное решение, а после верной проверки — пояснение, что значит результат. Проверка ещё и говорит, что не так с вашим результатом: не та колонка, лишние строки или порядок.
Поможет подготовиться к собеседованию?
В «Продвинутом SQL» есть модуль задач с собеседований, а у тем, о которых спрашивают чаще всего, свои модули: оконные функции, gaps and islands, сессии, retention и эксперименты.
Что бесплатно?
Вся теория и разборы, первый модуль «Основ SQL» и пробный доступ: 30 проверок и 3 вопроса тьютору с аккаунтом (10 проверок и 1 вопрос без него). Пропуск Nomto открывает все модули и все курсы Nomto; цены — в кабинете при оплате.
Напишите первый запрос
Первый урок занимает несколько минут. Первый проверенный ответ покажет, как всё устроено.