」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 在Oracle SQL中如何根據時間戳獲取每個組的最新值?

在Oracle SQL中如何根據時間戳獲取每個組的最新值?

發佈於2025-04-13
瀏覽:918

[2

在Oracle SQL How to Retrieve the Latest Value for Each Group Based on Timestamp in Oracle SQL?
中提取每個組的最新條目

本教程演示了一個常見的數據庫任務:根據時間戳檢索每個組的最新記錄。 我們將以一個包含ID,時間戳和數量的表格為例。

挑戰:

給出了一個帶有ID的表,Timestamp(“ date”)和數量(“數量”)列,我們如何為每個唯一ID有效地選擇最新數量(及其相關的時間戳)?

解決方案:

可以使用以下方法來實現這一點:

由時間戳排名:為每個ID組中的每一行分配一個排名,按時間戳以降序訂購。 選擇頂級等級:

過濾結果,以僅包含每個ID的最高等級的行。這些行代表最新條目。

    以下Oracle SQL查詢實現此解決方案:
  1. 選擇x.id,x。 “ date”,x.quantity 從 ( 選擇 ID, “日期”, 等級()超過(按ID訂單按“日期” desc分區)為RNK, 數量 來自數量 )x 其中x.rnk = 1;
  2. 可以調整此基本查詢以滿足更複雜的需求:
  3. 基於時間的過濾:
  4. 在其中添加一個
從內部查詢將結果限制為特定時間段。

與其他表:

通過在
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;
此方法提供了一種強大而有效的方法,可以根據Oracle SQL中的時間戳檢索每個組的最新值,適用於各種數據分析和操縱任務。
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3