Heim >Datenbank >MySQL-Tutorial >Wie gruppiere ich MySQL-Daten in 5-Minuten-Intervalle?

Wie gruppiere ich MySQL-Daten in 5-Minuten-Intervalle?

Barbara Streisand
Barbara StreisandOriginal
2025-01-15 11:26:45281Durchsuche

How to Group MySQL Data into 5-Minute Intervals?

MySQL-Daten gruppiert nach 5-Minuten-Intervallen

In diesem Artikel wird ein MySQL-Abfrageproblem gelöst: Wie gruppiert man Daten nach 5-Minuten-Intervallen innerhalb eines bestimmten Zeitbereichs und zeigt die zusammenfassenden Ergebnisse jedes Intervalls als separate Zeile an?

Verbesserte MySQL-Abfragen

Dies kann durch eine einfache Änderung der Abfrage mithilfe der PostgreSQL- oder MySQL-Syntax erreicht werden:

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>

Beschreibung:

Die überarbeitete Abfrage enthält zwei wichtige Änderungen:

  1. Es extrahiert den Zeitstempel, rundet ihn auf das nächste 5-Minuten-Intervall (300 Sekunden) und wandelt ihn mit FROM_UNIXTIME(UNIX_TIMESTAMP(timestamp) DIV 300 * 300) wieder in einen Zeitstempel um. (MySQL verwendet diese Methode, die Methode von PostgreSQL ist in MySQL nicht anwendbar)
  2. Es gruppiert die Daten nach gerundetem Zeitstempelwert (UNIX_TIMESTAMP(timestamp) DIV 300) und Namen und stellt so sicher, dass jedes 5-Minuten-Intervall als separate Gruppierung behandelt wird.

Ergebnis:

Mit diesen Änderungen erzeugt Ihre Abfrage die gewünschte Ausgabe, bei der die Ergebnisse nach 5-Minuten-Intervallen gruppiert werden, wobei jedes Intervall die Gesamtzahl der Vorkommen von „John“ in diesem Intervall anzeigt.

Das obige ist der detaillierte Inhalt vonWie gruppiere ich MySQL-Daten in 5-Minuten-Intervalle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn