Скользящее окно

В прошлый раз рассказывала про накопительную сумму.
Ссылка на пост вот тут.

Сегодня поговорим про скользящее окно.

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

Скользящее окно

Running total ≠ Rolling window

Running total — накопительная сумма.
Это сумма всего, что было до текущего момента включительно.
Она никогда не уменьшается, если нет отрицательных значений.
Где используется

  • общий доход с начала месяца / года
  • накопленные регистрации
  • рост базы пользователей
  • прогресс выполнения плана

📌 Это метрика «накопления», а не «динамики»

Rolling window — скользящее окно

Rolling window считает сумму (или среднее) только за последние N дней / строк.

Старые данные выпадают из окна.

Какой вопрос она отвечает

Что происходит прямо сейчас, в последние N дней?

Пример запроса с использованием Rolling window в SQL

SELECT date, sales, SUM(sales) OVER ( ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW ) AS rolling_7_days FROM sales;

Самое важное для разбора - это строка
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW

В этой строке и появляется Rolling window
Разберём буквально:

ROWS
👉 окно считается по количеству строк, а не по датам

6 PRECEDING
👉 взять 6 строк до текущей

CURRENT ROW
👉 включить текущую строку

В итоге окно = 7 строк

6 предыдущих + текущая = 7 строк

Важно понимать:
📌 Не 7 дней.
📌 Не календарная неделя.
📌 А именно 7 строк в отсортированном наборе.
Сортировка идет по ORDER BY date

Когда использовать что

Running total, если:

  • считаешь прогресс
  • строишь cumulative-графики
  • важно «сколько всего»

Rolling window, если:

  • ищешь тренд
  • сглаживаешь шум
  • сравниваешь периоды

Ну а в моем канале На связи SQL тебя будут ждать задачи на скользящее окно. Кейсы с использованием ROWS и RANGE. Как сделать реальные 7 дней, а не 7 строк.
Использование rolling-метрик в BI инструментах.
Подписывайся!

#SQL
#Аналитика данных
#Карьера в IT
#Выгорание
#PostgreSQL

Начать дискуссию