funkce okna s vlastním rámu je to úžasně jednoduché :
SELECT ts
,avg(val) OVER (ORDER BY ts
ROWS BETWEEN CURRENT ROW AND 7 FOLLOWING) AS avg_8h
FROM tbl;
Rámec pro každý průměr je aktuální řádek plus následujících 7. To předpokládá, že máte přesně jeden řádek pro každou hodinu. Zdá se, že to naznačují vaše ukázková data, ale neuvedli jste to.
Jak to je, avg_8h
pro finále (podle ts
) 7 řádků sady je počítáno s méně řádky, dokud se hodnota posledního řádku nerovná jeho vlastnímu průměru. Neuvedli jste, jak se vypořádat se zvláštním případem.