Накопительная сумма
Есть цифры, которые сами по себе не информативны.
А есть цифры, которые показывают путь.
Накопительная сумма - это как раз про путь.
Обсудим сегодня эту тему.
А пока подписывайся на мой канал На связи: SQL Там я публикую посты про особенности и нюансы SQL. Этот канал про то, как не бояться баз данных, понимать, что такое JOIN, GROUP BY и почему NULL ≠ 0. Его я веду с нуля подписчиков. Присоединяйся!
Накопительная сумма — это когда мы каждый следующий показатель прибавляем к предыдущим, чтобы увидеть не «что было сегодня», а что получилось к этому моменту.
Если очень по-человечески:
Сегодня + вчера + позавчера + всё, что было раньше.
В SQL это часто называют:
running total
cumulative sum
Простой пример из жизни
Ты копишь деньги.
Сам по себе столбец «Отложила» — это просто факты.
А вот накопительная сумма отвечает на другой вопрос:
Сколько денег у меня есть к каждому дню?
Именно этот столбец обычно хотят видеть бизнес и пользователи.
Где применяется накопительная сумма
На практике — почти везде:
💰 финансы:
доход, расходы, прибыль с начала месяца / года📦 склад:
остатки товаров📊 аналитика продуктов:
рост пользователей, регистраций, подписок📈 KPI и планы:
выполнение плана «на текущий момент»🕰 временные ряды:
динамика показателей во времени
Очень часто без накопительной суммы график просто не имеет смысла.
Как считается накопительная сумма в SQL
Современный и правильный способ — оконные функции.
Пример:
SELECT
date,
amount,
SUM(amount) OVER (ORDER BY date) AS running_total
FROM sales;
Что здесь происходит:
SUM(amount) — считаем сумму
OVER (...) — говорим: не по всей таблице сразу
ORDER BY date — накапливаем по времени
Результат:
первая строка → просто значение
каждая следующая → сумма всех предыдущих + текущая
Если нужно накапливать отдельно (по группам)
Например, по каждому клиенту:
SUM(amount) OVER (
PARTITION BY customer_id
ORDER BY date
)
Теперь у каждого клиента своя накопительная сумма, и они не мешают друг другу.
Примеры задач и важные моменты с NULL публикую в своем канале На связи: SQL.
Подписывайся и изучай новую информацию


