在管理多個條目的資料時,通常需要識別和檢索包含最新時間戳記的記錄給定的機密。雖然簡單的方法可能涉及按鍵分組並按最大時間戳排序,但這可能會導致與未出現在 group by 子句中的欄位相關的錯誤。
為了克服此問題,另一個查詢結構提供了可行的解決方案:
SELECT sensorID, timestamp, sensorField1, sensorField2 FROM sensorTable s1 WHERE timestamp = ( SELECT MAX(timestamp) FROM sensorTable s2 WHERE s1.sensorID = s2.sensorID ) ORDER BY sensorID, timestamp;
此查詢本質上將sensorTable s1中的每一行與其在sensorTable s2中最新帶時間戳的對應行進行比對。 WHERE 子句有效地過濾掉每個鍵具有最大時間戳記的行之外的所有行,確保所選資料是最新的。透過按感測器 ID 對結果進行分組並按時間戳排序,查詢將傳回一行,其中包含每個鍵的最新時間戳記以及所需的附加欄位。
以上是如何為 SQL 中的每個鍵選擇最近的時間戳記行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!