Следующий код генерирует строки на скриншоте ниже. Цель состоит в том, чтобы добавить новый столбец с именем GroupID
, который назначает значения, показанные синим цветом с правой стороны снимка экрана.
select
*
into #data
from
(
values
(157, 84152, 'termination', '7/31/2017'),
(157, 3025126, 'effective', '8/1/2017'),
(157, 3025126, 'termination', '8/31/2018'),
(157, 157, 'effective', '9/1/2018'),
(1176, 30, 'termination', '5/6/2017'),
(1176, 1176, 'effective', '5/7/2017'),
(1176, 1176, 'termination', '11/3/2017'),
(1176, 30, 'effective', '11/4/2017'),
(1176, 30, 'termination', '5/6/2018'),
(1176, 1176, 'effective', '5/7/2018'),
(1176, 1176, 'termination', '11/9/2018'),
(1176, 30, 'effective', '11/10/2018'),
(1176, 30, 'termination', '5/3/2019'),
(1176, 1176, 'effective', '5/4/2019')
) d (CurrentProducerID, FormerProducerID, DateType, DateValue);
alter table #data alter column DateValue date;
select * from #data;
Я пытался использовать row_number()
, но это не дает желаемого результата. Вот моя попытка и результат:
select
*,
--GroupID = row_number() over(partition by CurrentProducerID order by DateValue)
GroupID = row_number() over(partition by CurrentProducerID, FormerProducerID order by DateValue)
from #data;