Веб-аналитика

Накопительная сумма — 16.12.25 09:00

Есть цифры, которые сами по себе не информативны.
А есть цифры, которые показывают путь.

Накопительная сумма — это как раз про путь.

Обсудим сегодня эту тему.

Накопительная сумма - 16.12.25 09:00 0

А пока подписывайся на мой канал На связи: SQL Там я публикую посты про особенности и нюансы SQL. Этот канал про то, как не бояться баз данных, понимать, что такое JOIN, GROUP BY и почему NULL ≠ 0. Его я веду с нуля подписчиков. Присоединяйся!

Накопительная сумма — это когда мы каждый следующий показатель прибавляем к предыдущим, чтобы увидеть не «что было сегодня», а что получилось к этому моменту.

Если очень по-человечески:

Сегодня + вчера + позавчера + всё, что было раньше.

В SQL это часто называют:

  • running total

  • cumulative sum

Простой пример из жизни

Ты копишь деньги.

Накопительная сумма - 16.12.25 09:00 1

Сам по себе столбец «Отложила» — это просто факты.
А вот накопительная сумма отвечает на другой вопрос:

Сколько денег у меня есть к каждому дню?

Накопительная сумма - 16.12.25 09:00 2

Именно этот столбец обычно хотят видеть бизнес и пользователи.

Где применяется накопительная сумма

На практике — почти везде:

  • 💰 финансы:
    доход, расходы, прибыль с начала месяца / года

  • 📦 склад:
    остатки товаров

  • 📊 аналитика продуктов:
    рост пользователей, регистраций, подписок

  • 📈 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.
Подписывайся и изучай новую информацию

Источник

Теги

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть
Закрыть