我有一個傳感器數據表。每行都有一個傳感器ID,一個時間戳和其他字段。我想爲每個傳感器選擇帶有最新時間戳的單行,包括其他一些字段。如何爲每個鍵值選擇具有最新時間戳的行?
我認爲,解決辦法是按傳感器ID,然後才能由Max(時間戳),像這樣:
SELECT sensorID,timestamp,sensorField1,sensorField2
FROM sensorTable
GROUP BY sensorID
ORDER BY max(timestamp);
這給了我一個錯誤,指出「sensorField1必須by子句中的組或者用於彙總。「
解決此問題的正確方法是什麼?
您使用的是哪種數據庫引擎? –
儘管以下使用JOIN的Max(timestamp)值的答案應該可行,但如果sensorTable上有一個SensorReadingId,我會建議加入SensorReadingId。 –