我一直在尝试为此SQL查询找到解决方案:
|A| |B| |Output|
===========================
1 A 1
1 A 1
1 B 2
1 C 3
2 C 1
2 D 2
2 F 3
2 H 4
3 D 1
3 D 1
3 I 2
如您所见,我想创建一个列(输出)来识别(不是计数或求和)每个(A,B)元组的出现,而不会删除重复出现的事件。
你会怎么做? 提前致谢
答案 0 :(得分:1)
查找SQL Server内置DENSE_RANK()
函数。
SELECT *
,DENSE_RANK() OVER (PARTITION BY [A] ORDER BY [B] ASC) AS [OutPut]
FROM TableName
答案 1 :(得分:0)
我想你想要dense_rank()
:
select t.*,
dense_rank() over (partition by a order by b)
from table t;