提取 Oracle SQL 中每個群組的最新項目
本教學示範了一個常見的資料庫任務:根據時間戳記檢索每個群組的最新記錄。 我們將使用包含 ID、時間戳記和數量的表作為範例。
挑戰:
給定一個包含 ID、時間戳記(「日期」)和數量(「數量」)列的表,我們如何有效地為每個唯一 ID 選擇最新數量(及其關聯的時間戳記)?
解:
這可以透過以下方法來實現:
以下 Oracle SQL 查詢實作了此解決方案:
<code class="language-sql">SELECT x.id, x."date", x.quantity FROM ( SELECT id, "date", RANK() OVER (PARTITION BY id ORDER BY "date" DESC) AS rnk, quantity FROM qtys ) x WHERE x.rnk = 1;</code>
擴充查詢:
可以調整此基本查詢以滿足更複雜的需求:
WHERE
子句,將結果限制在特定時間段內。 id
欄位來整合其他資料表的資料。 例如,您可以連接到包含 ID 和名稱的表,以在輸出中包含名稱。 此方法提供了一種基於 Oracle SQL 中時間戳檢索每組最新值的穩健且高效的方法,適用於各種資料分析和操作任務。
以上是如何在Oracle SQL中根據時間戳記檢索每個群組的最新值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!