Чему вы научитесь
- Разбирать условие задачи по схеме «таблицы → ключи → гранулярность → что на выходе» и не терять время на переспрашивание очевидного.
- Писать запросы на LEFT JOIN + IS NULL, self-join и анти-join без классических ошибок с NULL и дублями.
- Решать задачи «топ-N в каждой группе», «медиана», «накопительный итог» — и оконными функциями, и без них.
- Пользоваться RANK, DENSE_RANK, ROW_NUMBER, LAG, LEAD и рамкой окна осознанно, а не наугад.
- Находить и объяснять ловушку NOT IN + NULL, различать EXISTS, IN и JOIN по поведению и по плану.
- Работать с датами: группировка по неделям и месяцам, поиск пропусков в последовательности дат, когорты.
- Понимать, почему запрос не использует индекс (функция на колонке, неявное приведение типа, LIKE с ведущим %), и переписывать его так, чтобы использовал.
- Читать EXPLAIN ANALYZE на уровне «где здесь Seq Scan и почему он тут дорогой».
- Проговаривать решение вслух так, как этого ждёт интервьюер: гипотеза, проверка на краевых случаях, только потом код.
О курсе
Это не курс «SQL с нуля». Предполагается, что SELECT, JOIN и GROUP BY вы уже
писали. Проблема, которую решает курс, другая: на собеседовании человек,
который спокойно пишет запросы на работе, вдруг зависает на задаче в три
таблицы — потому что формулировка непривычная, потому что решение нужно
проговаривать вслух, потому что рядом сидит человек и молчит.
Курс устроен как тренажёр. 30 задач в шести модулях: JOIN-ы, группировки,
оконные функции, подзапросы и ловушки, даты и строки, дизайн запроса.
Каждая задача — отдельный урок из пяти шагов: условие и нужная теория,
пошаговый разбор с готовым запросом, тест на понимание, практическое задание
на другом домене, короткий итог.
Все примеры лекций построены на одной сквозной схеме — маркетплейс «Сова»:
пользователи, заказы, позиции заказов, товары, платежи, сотрудники. Схема
вводится в модуле 0 и дальше не меняется, поэтому со второго модуля вы уже не
тратите время на «что тут за таблицы» и думаете только над задачей. Домашние
задания намеренно даются на других доменах — банк, такси, стриминг,
доставка, — чтобы решение нельзя было скопировать из разбора.
Диалект по умолчанию — PostgreSQL 18 (актуальная стабильная ветка на середину
2026 года). Там, где поведение MySQL, ClickHouse или Oracle отличается,
это отмечено в тексте отдельно: на собеседовании про диалект спрашивают часто.
Отдельный модуль — про то, как задачу сдавать: как читать условие, какие
уточняющие вопросы задают сильные кандидаты, что делать, если решение
не приходит. Заканчивается курс финальным набором из пяти задач без подсказок.
Для кого этот курс
Начальные требования
Нужно уметь писать простой SELECT с WHERE, соединять две таблицы через JOIN
и считать агрегаты с GROUP BY. Синтаксис этих конструкций курс не объясняет
с нуля — он объясняет, что с ними делают на собеседовании.
Наши преподаватели
Как проходит обучение
Текстовый курс без видео. 36 уроков в восьми модулях, каждый урок — одна
задача и пять шагов: текст с условием и нужной теорией, пошаговый разбор
с готовым запросом и списком типовых ошибок, тест из 3-4 вопросов
с пояснением к каждому, практическое задание на новом домене с эталонным
решением в спойлере, итог урока на пять строк.
В конце каждого модуля — шаг «Итог модуля»: мини-проект из нескольких задач,
собирающий тему целиком, с эталонным решением под спойлером для самопроверки.
Последний модуль — чек-лист разбора новой задачи, разбор психологических
ошибок на собеседовании и финальный набор из пяти задач без подсказок.
Тесты проверяются автоматически. Задания сдаются свободным ответом:
эталонное решение открывается в спойлере, сверяетесь сами.
Программа курса
Что вы получаете
- Личная шпаргалка из 30 разобранных задач с рабочими запросами, которую можно
- перечитать за вечер перед собеседованием, и чек-лист разбора незнакомой
- задачи из урока 7.1 — последовательность из шести шагов, которая работает
- на любой формулировке.