Valores agregados en un rango de horas, cada hora
Tengo una base de datos PostgreSQL 9.1 con una tabla que contiene unamarca de tiempo y una mediciónvalor
'2012-10-25 01:00' 2
'2012-10-25 02:00' 5
'2012-10-25 03:00' 12
'2012-10-25 04:00' 7
'2012-10-25 05:00' 1
... ...
Necesito promediar el valor en un rango de 8 horas, cada hora. En otras palabras, necesito el promedio de 1h-8h, 2h-9h, 3h-10h, etc.
No tengo idea de cómo proceder para tal consulta. He buscado en todas partes, pero tampoco tengo idea de qué funcionalidades buscar.
Los cierres que encuentro son promedios por hora / diarios o promedios de bloque (por ejemplo, 1h-8h, 9h-16h, etc.). Pero en estos casos, la marca de tiempo se convierte simplemente utilizando eldate_trunc()
Función (como en el siguiente ejemplo), que no me sirve.
Lo que creo que estoy buscando es una función similar a esta
SELECT date_trunc('day', timestamp), max(value)
FROM table_name
GROUP BY date_trunc('day', timestamp);
Pero luego use algún tipo de rango de 8 horas para CADA hora en la cláusula de grupo por. ¿Es eso posible?