根據時間戳鍵選擇最近的值
您使用GROUP BY 和max() 的初始方法原則上是正確的,但SQL 語法要求在GROUP BY子句中包含非聚合列或在聚合中使用它們
正確的解決方案包括為每個感測器選擇最大時間戳,然後在子查詢中使用它來檢索相應的感測器資料:
SELECT sensorID, MAX(timestamp) AS latest_timestamp, sensorField1, sensorField2 FROM sensorTable GROUP BY sensorID
此查詢會擷取每個感測器的最大時間戳感測器。然後,您可以在巢狀查詢中使用此子查詢來擷取具有該時間戳記的所有感測器:
SELECT * FROM sensorTable WHERE timestamp = ( SELECT MAX(timestamp) FROM sensorTable WHERE sensorID = sensorTable.sensorID )
第二個查詢會為每個感測器產生一行,其中包含最新的時間戳和關聯的傳感器數據。
以上是如何根據時間戳選擇最新的感測器資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!