Azure SQL数据库行号无法正常运行

我正在尝试在Azure SQL数据库的实例上运行ROWNUMber。就是行不通。

;WITH cteA AS
(
    SELECT 1 as Test1,2 as Test2,3 as Test3
    UNION ALL Select 1,1,1
    UNION ALL Select 1,1
    UNION ALL Select 2,3
    UNION ALL Select 2,3
)
SELECT
    *,ROW_NUMber() OVER (PARITION BY a.test1 ORDER BY A.test1) AS RN
FROM 
    cteA A

这是我得到的输出:

Test1   |Test2   |Test3   |RN
1       |1       |1       |1
1       |1       |1       |2
1       |2       |3       |3
2       |1       |3       |1
2       |1       |3       |2

不确定为什么?我期望RN是1-1-1-2-2

dongjian_011 回答:Azure SQL数据库行号无法正常运行

鉴于您的预期结果,我认为您实际上是想要的:

DENSE_RANK() OVER(ORDER BY A.test1)

这使您每次Test1更改时都增加1。

Demo on DB Fiddle

Test1 | Test2 | Test3 | RN
----: | ----: | ----: | :-
    1 |     1 |     1 | 1               
    1 |     1 |     1 | 1               
    1 |     2 |     3 | 1               
    2 |     1 |     3 | 2               
    2 |     1 |     3 | 2               
本文链接:https://www.f2er.com/3106776.html

大家都在问