oracle 分析函數:ROW_NUMBER() OVER(PARTITION BY ID ORDER BY VERSION DESC)

練習題:

如下表,我要查詢每個ID的最高版本以及最高版本的前一版本,該怎麼寫呢?
ID 版本 屬性
001 A red
001 B green
001 C brown
002 A red
002 B blue
想輸出:
ID 版本 屬性
001 B green
001 C brown
002 A red
002 B blue

答案:

SELECT ID,VERSION,ATTRIBUTE,RN-1 AS DD FROM
(
    SELECT
        ID
        ,VERSION
        ,ATTRIBUTE
        ,ROW_NUMBER() OVER(PARTITION BY ID ORDER BY VERSION DESC NULLS LAST) AS RN
    FROM TEMP070522

)
WHERE RN<=2 ORDER BY ID 
發佈了25 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章