ms-sql 인데요 아래처럼 idx값과 id는 디비에 저장이 되어있구요 뿌릴때 cnt값을 구하려고 합니다.
각각의 아이디 cnt값을 구하는건데요 처음에는 1이고 해당 아이디가 있으면 각각 더해서 cnt해야하는데 어떻게 select하면 될지 알고 싶습니다.
idx id cnt
8 aaa 3 << 세번째 aaa 이므로 3
7
aaa 2 << 두번째 aaa 이므로 2
6 bbb 3
5 ccc 2
<< 두번째 ccc 이므로 2
4 aaa 1 << 첫번째 aaa 이므로 1
3
bbb 2
2 bbb 1
1 ccc 1 << 첫번째 ccc 이므로 1
CREATE TABLE test1
(
idx int,
id nvarchar(20)
)
insert test1 select 8 ,'aaa'
insert test1 select 7 ,'aaa'
insert test1 select 6 ,'bbb'
insert test1 select 5 ,'ccc'
insert test1 select 4 ,'aaa'
insert test1 select 3 ,'bbb'
insert test1 select 2 ,'bbb'
insert test1 select 1 ,'ccc'
select *,
RANK() OVER (ORDER BY id asc) as nrum,
ROW_NUMBER() OVER (ORDER BY id asc, idx asc) as nrum1,
ROW_NUMBER() OVER (ORDER BY id asc, idx asc) - RANK() OVER (ORDER BY id asc) + 1
from test1
order by idx desc