Чему вы научитесь
- Писать рекурсивные CTE для обхода деревьев, иерархий (оргструктуры, категории) и графов с циклами
- Сравнивать CTE и подзапросы по читаемости и производительности — и выбирать подходящий инструмент
- Применять LAG и LEAD для доступа к соседним строкам в окне без самосоединения
- Извлекать граничные значения окна с помощью FIRST_VALUE и LAST_VALUE
- Разбивать строки на квантили через NTILE и вычислять процентильные ранги (PERCENT_RANK, CUME_DIST)
- Точно управлять границами вычислений через фреймы окон: ROWS BETWEEN, RANGE BETWEEN, GROUPS
- Понимать неочевидное поведение OVER(ORDER BY) без явного фрейма и задавать фреймы явно
- Решать задачи на скользящие агрегаты и нарастающие итоги с правильно заданным фреймом
О курсе
Цель курса
Переход от «умею писать запросы» к «умею решать сложные задачи эффективно»: рекурсивные CTE для иерархий и графов, полный арсенал оконных функций и точное управление фреймами окон — на реальной учебной базе данных с немедленной обратной связью на каждом шаге.
Для кого этот курс
Те, кто прошёл первый курс серии Вы освоили SELECT, JOIN, GROUP BY, подзапросы и базовые CTE. Хотите двигаться дальше — рекурсивные CTE, LAG/LEAD, фреймы окон и работа с иерархическими данными.
Аналитики и специалисты по данным Вы пишете SQL в работе, но сталкиваетесь с задачами, где не хватает инструментов: обход иерархий, сравнение строк внутри группы, точные скользящие окна.
Разработчики, работающие с базами данных Хотите понять рекурсивные CTE и оконные функции не поверхностно, а с пониманием того, как они работают.
Самоучки с базовым уровнем SQL Знаете основы, но рекурсивные CTE и продвинутые оконные функции пока остаются тёмным пятном.
Почему этот курс
Курс построен по принципу «минимум теории — максимум практики»: каждая концепция сразу закрепляется тестами и SQL-заданиями с автопроверкой. Все примеры и задания работают на одной учебной базе данных (edu), поэтому данные знакомы с первого урока и не меняются от темы к теме.
Что вы получите
По окончании курса вы уверенно применяете рекурсивные CTE для иерархических структур, используете полный набор оконных функций и задаёте фреймы окон явно — понимая, почему поведение по умолчанию бывает неочевидным.
Особенности
-
Учебная СУБД — PostgreSQL, все примеры и синтаксис соответствуют стандарту
-
56 теоретических тестов и 66 практических SQL-заданий с автопроверкой
-
Каждый урок включает теорию, квиз и практику — три уровня закрепления
Обратная связь на каждом шаге
В практических заданиях автопроверка не просто говорит «неверно», а подсказывает, в чём конкретно ошибка. Для практических заданий можно раскрыть подсказку с ожидаемым результатом — чтобы снять сомнения и лучше понять, что именно требуется написать.
В квизах каждый вариант ответа — правильный и неправильный — сопровождается объяснением: почему именно так.
В практических заданиях автопроверка не просто говорит «неверно», а подсказывает, в чём конкретно ошибка.
Если что-то осталось непонятным — можно задать вопрос в комментариях к уроку и получить ответ от студентов или от меня. Также, можете писать в telegram (указан на странице профиля)
Что нужно будет делать
Читать теорию, отвечать на вопросы квиза, писать SQL-запросы в редакторе с автопроверкой. Рекомендуемый темп: 5–7 часов в неделю. В таком режиме курс можно пройти за 2–3 недели.
Разделы курса
5 модулей: введение → быстрый старт (recap CTE и оконных функций) → CTE углублённо (рекурсия, иерархии, графы) → оконные функции полный набор (LAG/LEAD, FIRST/LAST_VALUE, NTILE, процентильные ранги) → фреймы окон (ROWS, RANGE, GROUPS).
Начальные требования
Курс рассчитан на тех, кто уверенно пишет запросы к одной таблице и умеет объединять несколько таблиц.
Необходимо знать:
-
SELECT,WHERE,ORDER BY,LIMIT,OFFSET -
AND/OR/NOT,LIKE,IN,BETWEEN,IS NULL -
Строковые, числовые функции и функции дат,
CASE WHEN -
COUNT/SUM/AVG/MIN/MAX,GROUP BY,HAVING,DISTINCT -
INNER JOIN,LEFT/RIGHT JOIN,FULL OUTER JOIN,CROSS JOIN,UNION/INTERSECT/EXCEPT -
Подзапросы в
SELECT,FROM,WHERE;EXISTS/ANY/ALL -
Базовый синтаксис
WITH(CTE), несколько CTE в одном запросе
ROW_NUMBER/RANK/DENSE_RANK и нарастающий итог SUM OVER знать желательно, но не обязательно — Модуль 2 курса даёт краткое повторение.
Хотите подготовиться или восполнить пробелы — всё это есть в первом курсе серии: «SQL на практике с нуля — от SELECT до оконных функций».
Наши преподаватели
Как проходит обучение
Курс состоит из текстовых уроков, квизов и практических SQL-заданий — без видеолекций.
Каждый урок включает три части:
-
Теория — объяснение концепции с примерами запросов и таблицами результатов на реальных данных схемы
edu -
Квиз — вопросы на проверку понимания (одиночный выбор, сопоставление, расстановка шагов по порядку)
-
Практика — SQL-задания с автопроверкой: нужно написать запрос, который вернёт правильный результат
Автопроверка заданий даёт мгновенную обратную связь: если запрос неверный, система подскажет, в чём именно ошибка — отсутствует PARTITION BY, неверное условие HAVING, пропущен ORDER BY внутри OVER и т.д.
Всего в курсе: 56 теоретических тестов и 66 практических SQL-заданий.
Остались вопросы — пишите лично, с удовольствием отвечу: t.me/xordal
Программа курса
Сертификат
Что вы получаете
- Практические навыки SQL продвинутого уровня: рекурсия, полный набор оконных функций, фреймы
- 56 теоретических тестов и 66 практических SQL-заданий с автопроверкой и подсказками — отработка каждой темы сразу после теории
- Сертификат об успешном прохождении курса
- Пожизненный доступ к материалам курса — можно возвращаться в любой момент