Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/03/2011, 11:44
marranxo
 
Fecha de Ingreso: octubre-2008
Mensajes: 7
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: agrupar por intervalos de timestamp

Al final encontré mi propia respuesta:


select avg(value) as value, TIMESTAMP WITHOUT TIME ZONE 'epoch' + date_part('epoch', time)::bigint/K0*K0 * INTERVAL '1 second' as time
from events
where ...
group by date_part('epoch', time)::bigint/K0*K0
order by date_part('epoch', time)::bigint/K0*K0 asc

Al extraer la "época" la fecha se convierte en el número de segundos pasados desde ¿1 de enero de 1970 creo? Indistintamente, al aplicar una división sobre el entero nos comemos la parte de la división conocida como resto y al volver a multiplicar con el mismo valor volvemos al valor inicial sin este resto. La solución consiste en asignar como K0 el intervalo en segundos, así un K0=300 nos agruparía la consulta a apartados de 5 minutos empezando en HH:00.

Un saludo,

J.Kastle