
Продвинутый SQL для аналитика: что учить после JOIN и GROUP BY
Карта продвинутого SQL после JOIN и GROUP BY: окна, временные ряды, рекурсия, JSON, история изменений и проверка данных на одной учебной базе авиакомпании.
Приёмы для задач, которые уже не решить одним JOIN и GROUP BY: рамки окон, рекурсия, массивы JSON и сверка источников на учебной базе авиакомпании.
Три материала, которые задают базу для остальных.
21 материалов

Карта продвинутого SQL после JOIN и GROUP BY: окна, временные ряды, рекурсия, JSON, история изменений и проверка данных на одной учебной базе авиакомпании.

FULL JOIN и CROSS JOIN для сверки броней и заполнения пустых часов: запросы PostgreSQL и pandas, три зоны результата, дубли и ловушка пустого ключа.

Self join на рейсах одного дня: 375 пар отправлений за полчаса, двойной счёт и сравнение с pandas merge и merge_asof на тех же данных.

ROWS, RANGE и GROUPS на восьми открытиях приложения: три разных ответа, рамка по умолчанию и граница pandas rolling против SQL RANGE.

Разворачиваем JSON-массив extras в PostgreSQL и pandas: пустые списки, LEFT JOIN LATERAL, explode и повторённая сумма после смены зерна.

Обходим маршрутную сеть через WITH RECURSIVE: якорь, рабочая таблица, глубина и циклы. Проверенные числа на рейсах и пять ошибок, которые раздувают пути.

На событиях приложения сравниваем ROLLUP, CUBE и GROUPING SETS: как отличить настоящий NULL от итога, не сложить уникальных клиентов дважды и повторить расчёт в pandas.

Разворачиваем шаги покупки по платформам в колонки через FILTER и DuckDB PIVOT, возвращаем длинный формат и проверяем ловушку дублей в pandas.

На ценах броней считаем p50 и p90, сравниваем непрерывный и дискретный перцентили, находим медиану без функции и сверяем pandas quantile.

Строим календарь через generate_series, присоединяем рейсы редкого аэропорта и сохраняем дни без вылетов. Сравниваем PostgreSQL, DuckDB range и pandas date_range.

Двенадцать задач SQL на реальные данные: вторая цена, медиана, возвращение, серии, сессии, SCD2, подытоги, сверка и уникальные клиенты. Ответы и частые ошибки.

PARTITION BY и OVER в SQL: окно и отличие от GROUP BY, доля от итога, накопительный итог, рамки ROWS и RANGE, фильтр по оконной функции.