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