Выберите нумерованный список повторяющихся записей - PullRequest
1 голос
/ 31 мая 2011

Действительно простой пример:

Допустим, у меня есть эта таблица:

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

Так что ключ (Имя, Счетчик) образует уникальную комбинацию.

Спасибо
Карл

1 Ответ

1 голос
/ 31 мая 2011
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
...