PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

date_trunc Intervallo di 5 minuti in 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;

Potresti GROUP BY due colonne:un timestamp troncato all'ora e uno slot di 5 minuti.

L'esempio produce slot 0 - 11 . Aggiungi 1 se preferisci 1 - 12 .
Ho lanciato il risultato di extract() a intero, quindi la divisione / 5 tronca le cifre frazionarie. Il risultato:
minuto 0 - 4 -> fascia oraria 0
minuto 5 - 9 -> fascia oraria 1
ecc.

Questa query restituisce solo valori per quegli slot di 5 minuti in cui vengono trovati i valori. Se vuoi un valore per ogni slot o se vuoi una somma corrente su slot di 5 minuti, considera questa risposta correlata:

  • PostgreSQL:conteggio in esecuzione delle righe per una query 'per minuto'