Нарастающий итог
Часть раздела Продвинутый уровень путешествия по SQL на Coddy. Урок 25 из 27.
Нарастающий (накопительный) итог — это SUM по окну с ORDER BY: так агрегат превращается в значение, которое растёт построчно.
SELECT day, amount,
SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenueБез ORDER BY окно охватывает все строки, и ты получишь общий итог в каждой строке. С ним окно расширяется по одной строке в указанном порядке, поэтому каждая строка видит только себя и все строки перед ней.
Добавь PARTITION BY, чтобы сбрасывать накопительный итог для каждой группы, например, накопительный итог выручки по регионам за каждый день.
Задание
ЛегкоДоступные таблицы и столбцы:
revenue:region,day,amount
Верни region, day, amount и region_running_total: накопительную сумму amount для этого региона до этого дня включительно. Накопительная сумма должна сбрасываться для каждого региона.
Используй PARTITION BY в оконной функции. Сначала сортируй по region, затем по day.
Попробуйте сами
SELECT region, day, amount,
-- добавьте здесь столбец region_running_total
FROM revenue
ORDER BY region, day
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Продвинутый уровень
6Рецепты аналитики
Топ-N в группеПроцент от общегоНарастающий итогОдна строка на ключИтоги — Лучшие клиентыПотренируйтесь самостоятельно: Песочница SQL