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!