0
create table #t_Jenas (Id int, Name char)

insert into #t_Jenas values
(1, 'A'),
(2, 'A'),
(3, 'B'),
(4, 'B'),
(5, 'B'),
(6, 'B'),
(7, 'C'),
(8, 'B'),
(9, 'B')

行番号分割の場合、行が繰り返される場合、マイナス列が昇順でなくなる番号が続きます。上記のデータとして行を繰り返しますが、パーティション番号を1から開始する方法はありますか?

select name,row_number() over (order by id) as cont ,row_number() over (partition by name order by id) as newcount,( row_number() over (order by id)-row_number() over (partition by name order by id)) as rowminusnewcount  --, count(*) as cnt
from #t_Jenas

実際:

name    cont    newcount    rowminusnewcount
A   1   1   0
A   2   2   0
B   3   1   2
B   4   2   2
B   5   3   2
B   6   4   2
C   7   1   6
B   8   5   3
B   9   6   3

期待される:

name    cont    newcount    rowminusnewcount
A   1   1   0
A   2   2   0
B   3   1   2
B   4   2   2
B   5   3   2
B   6   4   2
C   7   1   6
B   8   1   7
B   9   2   7
4

2 に答える 2