Maison > base de données > tutoriel mysql > Comment regrouper les horodatages en intervalles de 5 minutes pour les requêtes de comptage ?

Comment regrouper les horodatages en intervalles de 5 minutes pour les requêtes de comptage ?

Linda Hamilton
Libérer: 2025-01-15 08:15:45
original
800 Les gens l'ont consulté

How to Group Timestamps into 5-Minute Intervals for Count Queries?

Regrouper les horodatages par intervalles de 5 minutes pour les requêtes de comptage

Question :

Une requête pour compter le nombre d'occurrences de John dans une plage de temps spécifique, mais le résultat est un horodatage non groupé et son décompte. L’objectif est de regrouper les résultats par intervalles de 5 minutes.

Solution :

Pour regrouper les résultats par intervalles de 5 minutes, vous pouvez utiliser MySQL et PostgreSQL avec une syntaxe spécifique :

PostgreSQL :

<code class="language-sql">SELECT
    date_trunc('minute', timestamp) + INTERVAL '5 minutes' * (EXTRACT(MINUTE FROM timestamp)::integer / 5) AS five_minute_interval,
    name,
    COUNT(b.name)
FROM time a, id 
WHERE …
GROUP BY five_minute_interval, name
ORDER BY five_minute_interval;</code>
Copier après la connexion

MySQL :

<code class="language-sql">SELECT
    FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(timestamp) / 300) * 300) AS five_minute_interval,
    name,
    COUNT(b.name)
FROM time a, id
WHERE …
GROUP BY five_minute_interval, name
ORDER BY five_minute_interval;</code>
Copier après la connexion

Dans les deux requêtes, la clause GROUP BY est regroupée par le résultat arrondi de l'horodatage divisé par 300 (représentant un intervalle de 5 minutes). Cela crée effectivement des groupes de 5 minutes pour les horodatages et attribue chaque horodatage au groupe correspondant. PostgreSQL utilise la fonction date_trunc pour gérer plus proprement la troncature et le regroupement des horodatages, tandis que MySQL utilise les fonctions FROM_UNIXTIME et FLOOR pour obtenir la même fonctionnalité.

Sortie :

La sortie affichera désormais les résultats regroupés par intervalles de 5 minutes et un décompte correspondant du nombre d'occurrences de John :

<code>five_minute_interval       name  COUNT(b.name)
------------------------  ----  -------------
2010-11-16 10:30:00       John  2
2010-11-16 10:35:00       John  10
2010-11-16 10:40:00       John  0
2010-11-16 10:45:00       John  8
2010-11-16 10:50:00       John  0
2010-11-16 10:55:00       John  11</code>
Copier après la connexion

Remarque : la partie WHERE … du code doit être remplacée par vos conditions de requête en fonction de la situation réelle. De plus, pour garantir la lisibilité des résultats, la clause ORDER BY five_minute_interval est ajoutée. Les instructions SQL améliorées implémentent plus précisément le regroupement à intervalles de 5 minutes et évitent les erreurs d'arrondi potentielles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal