Оконные функции SQL: топ-N, последний заказ и накопительный итог
Задачи SQL на оконные функции: топ-N по группам, последний заказ, сессии и накопительные показатели.
Состав подборки: 3 вопроса с выбором ответа, 1 задание с текстовым ответом, 6 задач на код. Условия и формат проверки указаны на странице каждой задачи.
Разберите маленький пример
Если у клиента два заказа с одинаковой датой, сортировки только по дате недостаточно для однозначного выбора последнего. Добавьте подходящий уникальный ключ. Для топ-N заранее решите: нужно ровно N строк или все участники с одинаковым результатом на границе.
На что обратить внимание
- PARTITION BY отделяет группы, ORDER BY задаёт порядок внутри них.
- Для накопительной суммы проверьте рамку окна и обработку одинаковых значений сортировки.
- Семь строк и семь календарных дней совпадают только при подходящей плотности данных.
- Результат окна часто нужно фильтровать на следующем уровне запроса, например во внешнем SELECT.
Порядок практики
- SUM OVER и PARTITION BY в SQL: сравните суммы — выбор ответа.
- Оконная сумма SQL: сохранить строки и добавить итог группы — выбор ответа.
- Оконная функция SQL с ORDER BY: рамка по умолчанию — выбор ответа.
- Нарастающий итог SQL: одинаковые даты и порядок строк — текстовый ответ.
- SQL топ-N в каждой группе: два товара по продажам — код.
- Последняя запись в группе SQL: заказ каждого клиента — код.
- SQL: Выделение пользовательских сессий — Номер сессии и позиция клика — код.
- SQL: Календарная таблица и пропущенные даты — Непрерывный отчёт о звонках — код.
- SQL: Скользящие показатели по календарным периодам — Семидневная сумма и неполное начало ряда — код.
- SQL: Агрегация, оконные вычисления и фильтрация — Категории-лидеры и доля в продажах — код.
Куда двигаться дальше
Если базовые SELECT и JOIN уже знакомы, посмотрите платный курс «Продвинутый SQL».
- SUM OVER и PARTITION BY в SQL: сравните суммы
На небольшой таблице продаж вычислите сумму по всему набору и по категории для указанной строки.
SQL с нуля: бесплатный курс с практикой - Оконная сумма SQL: сохранить строки и добавить итог группы
Выберите выражение, которое добавляет сумму категории к каждой продаже и сохраняет детализацию исходной таблицы.
SQL с нуля: бесплатный курс с практикой - Оконная функция SQL с ORDER BY: рамка по умолчанию
Разберите SUM OVER с сортировкой и без явно заданной рамки. Выберите правило определения окна из вариантов задания.
SQL с нуля: бесплатный курс с практикой - Нарастающий итог SQL: одинаковые даты и порядок строк
Для построчного нарастающего итога сравните варианты сортировки при совпадающих датах. Выберите дополнительный ключ.
SQL с нуля: бесплатный курс с практикой - SQL топ-N в каждой группе: два товара по продажам
Рассчитайте продажи товаров и выберите топ-2 в каждой категории. SQL-задача на агрегацию и оконное ранжирование.
SQL с нуля: бесплатный курс с практикой - Последняя запись в группе SQL: заказ каждого клиента
Найдите последний заказ каждого клиента оконной функцией или подзапросом. SQL-практика с проверкой результата.
SQL с нуля: бесплатный курс с практикой - SQL: Выделение пользовательских сессий — Номер сессии и позиция клика
Практика: Выделение пользовательских сессий. Номер сессии и позиция клика. Самостоятельное условие и проверка решения на Latorn.
Продвинутый SQL: сложные запросы и задачи для собеседований - SQL: Календарная таблица и пропущенные даты — Непрерывный отчёт о звонках
Практика: Календарная таблица и пропущенные даты. Непрерывный отчёт о звонках. Самостоятельное условие и проверка решения на Latorn.
Продвинутый SQL: сложные запросы и задачи для собеседований - SQL: Скользящие показатели по календарным периодам — Семидневная сумма и неполное начало ряда
Практика: Скользящие показатели по календарным периодам. Семидневная сумма и неполное начало ряда. Самостоятельное условие и проверка решения на Latorn.
Продвинутый SQL: сложные запросы и задачи для собеседований - SQL: Агрегация, оконные вычисления и фильтрация — Категории-лидеры и доля в продажах
Практика: Агрегация, оконные вычисления и фильтрация. Категории-лидеры и доля в продажах. Самостоятельное условие и проверка решения на Latorn.
Продвинутый SQL: сложные запросы и задачи для собеседований
