sql >> Base de Datos >  >> RDS >> PostgreSQL

date_trunc intervalo de 5 minutos en PostgreSQL

SELECT date_trunc('hour', date1) AS hour_stump
     , (extract(minute FROM date1)::int / 5) AS min5_slot
     , count(*)
FROM   table1
GROUP  BY 1, 2
ORDER  BY 1, 2;

Podrías GROUP BY dos columnas:una marca de tiempo truncada a la hora y un intervalo de 5 minutos.

El ejemplo produce ranuras 0 - 11 . Añadir 1 si prefiere 1 - 12 .
Lanzo el resultado de extract() a entero, por lo que la división / 5 trunca dígitos fraccionarios. El resultado:
minuto 0 - 4 -> intervalo 0
minuto 5 - 9 -> intervalo 1
etc.

Esta consulta solo devuelve valores para esos intervalos de 5 minutos donde se encuentran valores. Si desea un valor para cada tragamonedas o si desea una suma corriente más de 5 minutos, considere esta respuesta relacionada:

  • PostgreSQL:conteo continuo de filas para una consulta 'por minuto'