Gruppieren von Zeitsegmenten für Summen- und Durchschnittsberechnungen
In der MySQL-Datenbank können Sie zusammengefasste Daten aus einer Tabelle abrufen, die zeitgestempelte Datensätze mit variierenden Daten enthält Intervalle zwischen den Aufnahmen. Ihr Ziel besteht darin, diese Datensätze zu gruppieren und Summen- und Durchschnittswerte für bestimmte Zeitabschnitte zu berechnen, z. B. 10 Sekunden oder 30 Sekunden.
LÖSUNG
Der Schlüssel zur Gruppierung von Zeit Segmente liegt in der GROUP BY-Klausel. Um Daten basierend auf 30-Sekunden-Intervallen zu gruppieren und zusammenzufassen, verwenden Sie den folgenden Befehl:
GROUP BY UNIX_TIMESTAMP(time_stamp) DIV 30
Dieser Ausdruck dividiert den Unix-Zeitstempel jedes Datensatzes durch 30 und rundet auf die nächste 30-Sekunden-Marke ab. Dadurch werden Datensätze innerhalb desselben 30-Sekunden-Intervalls gruppiert.
Zeitsegmentgrenzen anpassen
Sie können die Grenzen Ihrer Zeitsegmente durch Anpassen ändern der Nenner im DIV-Ausdruck. Um beispielsweise in 20-Sekunden-Intervallen zu gruppieren:
GROUP BY UNIX_TIMESTAMP(time_stamp) DIV 20
Zeitsegmente puffern
Um Ihren Zeitsegmenten einen Puffer hinzuzufügen, können Sie die folgende Formel verwenden :
GROUP BY (UNIX_TIMESTAMP(time_stamp) + r) DIV 30
In diesem Ausdruck stellt r eine nicht negative ganze Zahl kleiner als 30 dar. Durch Hinzufügen eines Werts zum Zeitstempel können Sie überlappende Zeitabschnitte erstellen. Zum Beispiel:
GROUP BY (UNIX_TIMESTAMP(time_stamp) + 5) DIV 30
Diese Abfrage gruppiert Datensätze in Zeitsegmente von hh:mm:05 bis hh:mm:35 und von hh:mm:35 bis hh:mm 1:05.
Das obige ist der detaillierte Inhalt vonWie gruppiere ich MySQL-Zeitstempeldaten in benutzerdefinierte Zeitsegmente für Summen- und Durchschnittsberechnungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!