PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

date_trunc Intervalle de 5 minutes dans 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;

Vous pouvez GROUP BY deux colonnes :un horodatage tronqué à l'heure et un créneau de 5 minutes.

L'exemple produit les emplacements 0 - 11 . Ajouter 1 si vous préférez 1 - 12 .
Je lance le résultat de extract() en entier, donc la division / 5 tronque les chiffres fractionnaires. Le résultat :
minute 0 - 4 -> slot 0
minute 5 - 9 -> slot 1
etc.

Cette requête renvoie uniquement des valeurs pour les créneaux de 5 minutes où des valeurs sont trouvées. Si vous voulez une valeur pour tous fente ou si vous voulez un somme courante plus de 5 minutes, considérez cette réponse connexe :

  • PostgreSQL :nombre de lignes en cours pour une requête "par minute"