Maison >base de données >tutoriel mysql >Comment regrouper les données MySQL en intervalles de 5 minutes ?

Comment regrouper les données MySQL en intervalles de 5 minutes ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-15 11:26:45281parcourir

How to Group MySQL Data into 5-Minute Intervals?

Données MySQL regroupées par intervalles de 5 minutes

Cet article résoudra un problème de requête MySQL : comment regrouper les données par intervalles de 5 minutes dans une plage de temps spécifique et afficher les résultats récapitulatifs de chaque intervalle sur une ligne distincte.

Requêtes MySQL améliorées

Cela peut être réalisé avec une simple modification de la requête en utilisant la syntaxe PostgreSQL ou MySQL :

PostgreSQL :

<code class="language-sql">SELECT
    TIMESTAMP WITH TIME ZONE 'epoch' +
    INTERVAL '1 second' * round(extract('epoch' from timestamp) / 300) * 300 as timestamp,
    name,
    count(b.name)
FROM time a, id 
WHERE …
GROUP BY 
round(extract('epoch' from timestamp) / 300), name</code>

MySQL :

<code class="language-sql">SELECT
    FROM_UNIXTIME(UNIX_TIMESTAMP(timestamp) DIV 300 * 300) as timestamp,
    name,
    COUNT(b.name)
FROM time a, id
WHERE …
GROUP BY 
UNIX_TIMESTAMP(timestamp) DIV 300, name</code>

Description :

La requête révisée contient deux modifications clés :

  1. Il extrait l'horodatage, l'arrondit à l'intervalle de 5 minutes le plus proche (300 secondes) et le reconvertit en horodatage à l'aide de FROM_UNIXTIME(UNIX_TIMESTAMP(timestamp) DIV 300 * 300). (MySQL utilise cette méthode, la méthode PostgreSQL n'est pas applicable dans MySQL)
  2. Il regroupe les données par valeur d'horodatage arrondie (UNIX_TIMESTAMP(timestamp) DIV 300) et par nom, garantissant que chaque intervalle de 5 minutes est traité comme un groupe distinct.

Résultat :

Avec ces modifications, votre requête produira le résultat souhaité, où les résultats sont regroupés par intervalles de 5 minutes, chaque intervalle affichant le nombre total d'occurrences de « John » dans cet intervalle.

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!

Déclaration:
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