Скользящее окно
В прошлый раз рассказывала про накопительную сумму.
Ссылка на пост вот тут.
Сегодня поговорим про скользящее окно.
А пока подписывайся на мой канал На связи: SQL Там я публикую посты про особенности и нюансы SQL. Этот канал про то, как не бояться баз данных, понимать, что такое JOIN, GROUP BY и почему NULL ≠ 0. Его я веду с нуля подписчиков. Разбор частых ошибок и задачи по накопительной сумме уже в канале.
Присоединяйся!
Running total ≠ Rolling window
Running total — накопительная сумма.
Это сумма всего, что было до текущего момента включительно.
Она никогда не уменьшается, если нет отрицательных значений.
Где используется
- общий доход с начала месяца / года
- накопленные регистрации
- рост базы пользователей
- прогресс выполнения плана
📌 Это метрика «накопления», а не «динамики»
Rolling window — скользящее окно
Rolling window считает сумму (или среднее) только за последние N дней / строк.
Старые данные выпадают из окна.
Какой вопрос она отвечает
Что происходит прямо сейчас, в последние N дней?
Пример запроса с использованием Rolling window в SQL
Самое важное для разбора - это строка
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