【发布时间】:2019-11-13 21:08:48
【问题描述】:
我正在尝试在 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, 1
UNION ALL Select 2, 1, 3
UNION ALL Select 2, 1, 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
【问题讨论】:
-
PARTITION BY a.test1创建具有相同值的行的“分区”(或“组”/“桶”) - 这里一组包含所有test1 = 1行,另一组包含test1 = 2。在每个组中,行从 1 开始连续编号 - 这就是为什么您会得到您所看到的结果(这些结果是正确 - 考虑到您编写的代码)
标签: sql sql-server azure azure-sql-database row-number