Heim >Datenbank >MySQL-Tutorial >Wie kann ich Zeitreihendaten in MySQL nach 10-Sekunden-, 30-Sekunden- oder anderen Intervallen gruppieren?

Wie kann ich Zeitreihendaten in MySQL nach 10-Sekunden-, 30-Sekunden- oder anderen Intervallen gruppieren?

Barbara Streisand
Barbara StreisandOriginal
2025-01-03 20:34:41247Durchsuche

How Can I Group Time-Series Data in MySQL by 10-Second, 30-Second, or Other Intervals?

SELECT / GROUP BY – Zeitsegmente (10 Sekunden, 30 Sekunden usw.)

In MySQL ist es möglich, aggregierte Daten abzurufen Daten aus einer Tabelle basierend auf Zeitintervallen mithilfe der SELECT- und GROUP BY-Klauseln. Stellen Sie sich ein Szenario vor, in dem Sie über eine Tabelle verfügen, die alle n Sekunden Stichproben aufzeichnet, mit zwei relevanten Spalten: Zeitstempel und Anzahl.

Um Summen oder Durchschnittswerte der Zählungsspalte gruppiert nach bestimmten Zeitintervallen zu erhalten, führen Sie die folgenden Schritte aus:

  1. Konvertieren Sie die Spalte „time_stamp“ mit der Funktion UNIX_TIMESTAMP in einen UNIX-Zeitstempel.
  2. Dividieren Sie Zeitstempel um das gewünschte Intervall. Um beispielsweise nach 10-Sekunden-Intervallen zu gruppieren: UNIX_TIMESTAMP(time_stamp) DIV 10.
  3. Verwenden Sie das Ergebnis aus Schritt 2 als Gruppierungskriterium in der GROUP BY-Klausel, wie in der folgenden Abfrage dargestellt:

    SELECT UNIX_TIMESTAMP(time_stamp) DIV 10, SUM(count)
    FROM table
    GROUP BY UNIX_TIMESTAMP(time_stamp) DIV 10;

Diese Abfrage gruppiert die Daten in 10-Sekunden-Intervallen. Summieren der Zählwerte innerhalb jedes Intervalls.

  1. Passen Sie bei Bedarf die Grenzen zwischen den Intervallen an, indem Sie dem Zeitstempel einen Offset hinzufügen. Um beispielsweise nach Intervallen von hh:mm:05 bis hh:mm:35 zu gruppieren, verwenden Sie:

    GROUP BY (UNIX_TIMESTAMP(time_stamp) + 5) DIV 10

Durch die Nutzung der Funktionen GROUP BY und UNIX_TIMESTAMP können Sie effizient aggregieren Daten aus Zeitreihentabellen basierend auf verschiedenen Zeitsegmenten, die Einblicke in Muster und Trends im Zeitverlauf bieten.

Das obige ist der detaillierte Inhalt vonWie kann ich Zeitreihendaten in MySQL nach 10-Sekunden-, 30-Sekunden- oder anderen Intervallen gruppieren?. 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