4

Накопительная сумма

Серия SQL: знакомство

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

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

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

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

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества