我正在尝试在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 (Partition by a.test1 order by A.test1) as RN
FROM cteA A
这是我得到的输出:Test1 | Test2 | Test3 | RN1 | 1 | 1 111 | 1 | 1 221 | 2 | 3 | 32 | 1 | 1 | 3 | 12 | 1 | 1 | 3 | 2 | 2
不确定为什么?我期望RN是1-1-1-2-2
鉴于您的预期结果,我认为您实际上是想要的:
DENSE_RANK() OVER(ORDER BY A.test1)