小编Naf*_*tha的帖子

如何在 Oracle 中考虑多个列对 DENSE_RANK 列重新排序?

我有一个查询,其中有 DENSE_RANK 和 ROW_NUMBER 列:

WITH CTE AS(
    SELECT
    A.SL_NO, 
    A.ACC_NO, 
    A.ACC_NAME
    DENSE_RANK() OVER(ORDER BY A.ACC_NO, A.ACC_NAME) DRN,
    ROW_NUMBER() OVER(PARTITION BY A.ACC_NO, A.ACC_NAME ORDER BY A.SL_NO) RN
    FROM TEST_TBL A 
)
SELECT * 
FROM CTE A
ORDER BY A.SL_NO;
Run Code Online (Sandbox Code Playgroud)

查询结果为:

SL_NO   ACC_NO  ACC_NAME DRN RN
1        234      UNIP    3   1
2        234      UNIP    3   2
3        234      UNIP    3   3
4        256      PURP    4   1
5        256      PURP    4   2
6        289      KFAR    5   1
7        210      FHAS    2   1 …
Run Code Online (Sandbox Code Playgroud)

sql oracle

3
推荐指数
1
解决办法
1245
查看次数

标签 统计

oracle ×1

sql ×1