JI44 테이블에 DUP컬럼을 추가하고 거기에 PNU코드가 중복된 숫자만큼 넣으려고 합니다.
먼저,
SELECT PNU, ROW_NUMBER() OVER(PARTITION BY PNU ORDER BY PNU) AS DUP FROM JI44;
위와 같이 선택을 하여 그림 1과 같이 결과를 얻었습니다.
이후 JI44에 DUP컬럼을 추가하고 거기에 이 값들을 넣으려고 합니다.
(ALTER TABLE ji44 ADD(dup VARCHAR2(10));)
그렇게 하기 위해서는 다음과같은 쿼리를 했는데 안되네요 어떻게 해야하나요?
UPDATE JI44 SET DUP = (SELECT PNU, ROW_NUMBER() OVER(PARTITION BY PNU ORDER BY PNU);
퇴근시간이라 그냥 둘다 적어볼게요.
--중복된 갯수 update하기 merge into ji44 a using (select pnu, count(1) cnt from ji44 group by pnu) b on (a.pnu = b.pnu) when matched then update set a.dup = b.cnt --중복된 값에 대해 순서대로 번호주기 merge into ji44 a using (select rowid rid, row_number() over(partition by pnu order by pnu) num from ji44) b on (a.rowid = b.rid) when matched then update set a.dup = b.num