选择重复条目的编号列表

时间:2011-05-31 13:05:04

标签: sql-server select duplicates sql-server-2008-r2

非常简单的例子:

假设我有这张表:

ID         Name
GUID1      John
GUID2      John
GUID3      John
GUID4      John
GUID5      Jane
GUID6      Jane

我想做一个select,它为每个同名的事件分配一个计数器(每次从1开始)。即:

ID         Name     Counter
GUID1      John     1
GUID2      John     2
GUID3      John     3
GUID4      John     4
GUID5      Jane     1
GUID6      Jane     2

这样键(名称,计数器)就形成了一个独特的组合。

感谢
卡尔

1 个答案:

答案 0 :(得分:1)

declare @T table(ID varchar(10), Name varchar(10))
insert into @T values
('GUID1',      'John'),
('GUID2',      'John'),
('GUID3',      'John'),
('GUID4',      'John'),
('GUID5',      'Jane'),
('GUID6',      'Jane')

select
  ID,
  Name,
  row_number() over(partition by Name order by ID) as Counter
from @T
order by ID