Heim >Datenbank >MySQL-Tutorial >Wie gruppiere ich MySQL-Daten in 5-Minuten-Intervalle?
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:
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)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!