cstmId | loginId | name --------------------------------- 101 | P101 | kim 101 | kim1dk | kim 102 | P102 | choi 103 | P103 | lee 104 | P104 | lee 104 | jalee4 | lee
위와 같은 데이터가 있을때 rownum 컬럼을 추가해서 같은 cstmId이면 같은 rownum을 부여하고 싶습니다.
cstmId | loginId | name | rowNum ------------------------------------------------ 101 | P101 | kim | 1 101 | kim1dk | kim | 1 102 | P102 | choi | 2 103 | P103 | lee | 3 104 | P104 | lee | 4 104 | jalee4 | lee | 4
그룹별 순서 메기기는 아는데 그룹당 같은 번호를 메기는것은 생각해봤는데 잘 떠오르지 않네요..
dense_rank를 쓰시면 됩니다.
with t (cstmid, loginid, name) as ( select 101, 'P101', 'kim' from dual union all select 101, 'kim1dk', 'kim' from dual union all select 102, 'P102', 'choi' from dual union all select 103, 'P103', 'lee' from dual union all select 104, 'P104', 'lee' from dual union all select 104, 'jalee4', 'lee' from dual ) select cstmid, loginid, name, dense_rank() over (order by cstmid) rn from t