3-дневное скользящее среднее вычисляется с помощью оконной функции, которая усредняет значение текущей строки вместе с двумя предыдущими строками, все упорядоченные по дате.
AVG() OVER() — оконная функция, которая вычисляет среднее значение по определённому диапазону строкORDER BY date — гарантирует обработку строк в хронологическом порядкеROWS BETWEEN 2 PRECEDING AND CURRENT ROW — определяет окно данных, включая текущую строку и 2 строки перед нейSELECT
date,
value,
AVG(value) OVER (
ORDER BY date
ROWS BETWEEN 2 PRECEDING AND CURRENT ROW
) AS moving_avg_3day
FROM metrics;
PARTITION BY — окно охватывает весь набор данныхPARTITION BY category внутрь OVER(), если тебе нужны отдельные скользящие средние для каждой группыПредложение ROWS BETWEEN 2 PRECEDING AND CURRENT ROW определяет окно фрейма, которое включает ровно 3 строки: текущую строку и 2 строки непосредственно перед ней в упорядоченной последовательности.
Новый — ещё не проверен сообществом
Вы