2011-05-31 92 views
1

真正简单的例子编号列表:选择重复条目

比方说,我有这个表:

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

我愿做一个选择它分配一个计数器同名的每一次出现(每次从1开始)。即:

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

这样键(Name,Counter)形成一个独特的组合。

感谢
卡尔

回答

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 
+0

真棒,谢谢 – Karl 2011-05-31 13:58:04