Heim >Datenbank >MySQL-Tutorial >Wie wähle ich die aktuellsten Sensordaten anhand von Zeitstempeln aus?

Wie wähle ich die aktuellsten Sensordaten anhand von Zeitstempeln aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-23 22:57:15976Durchsuche

How to Select the Most Recent Sensor Data Based on Timestamps?

Auswahl aktueller Werte basierend auf Zeitstempelschlüsseln

Ihr erster Ansatz mit GROUP BY und max() war im Prinzip korrekt, aber die SQL-Syntax erfordert die Aufnahme nicht aggregierter Spalten in die GROUP BY-Klausel oder deren Verwendung in einer Aggregatfunktion.

Die richtige Lösung umfasst die Auswahl des maximalen Zeitstempels für jeden Sensor und verwenden Sie diese dann in einer Unterabfrage, um die entsprechenden Sensordaten abzurufen:

SELECT sensorID,
       MAX(timestamp) AS latest_timestamp,
       sensorField1,
       sensorField2
FROM sensorTable
GROUP BY sensorID

Diese Abfrage ruft den maximalen Zeitstempel für jeden Sensor ab. Sie können diese Unterabfrage dann in einer verschachtelten Abfrage verwenden, um alle Sensoren mit diesem Zeitstempel abzurufen:

SELECT *
FROM sensorTable
WHERE timestamp = (
    SELECT MAX(timestamp)
    FROM sensorTable
    WHERE sensorID = sensorTable.sensorID
)

Diese zweite Abfrage führt zu einer einzelnen Zeile für jeden Sensor, mit dem neuesten Zeitstempel und den zugehörigen Sensordaten.

Das obige ist der detaillierte Inhalt vonWie wähle ich die aktuellsten Sensordaten anhand von Zeitstempeln aus?. 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