分类(Oracle)
Oracle 分析函数:ROW_NUMBER() OVER(PARTITION BY ID ORDER BY VERSION DESC)
2009/03/02 09:35

练习题:

如下表,我要查询每个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

Tags: Oracle
相关日志:
+引用(0) |
发表评论
昵称  密码  游客无需密码
网址  电邮  注册
验证码 请输入左侧图片中的字符
记住我