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?

Respuestas a la pregunta(2)

Su respuesta a la pregunta