Programming
No. 129
Name. swindler
Subject. 중복 DATA 지우기
Main Cate. Oracle
Sub Cate.
Date. 2005-04-12 10:16
Hit. 3406 (211.219....)
File.
PRIMARY KEY 나 Unique가 없이 중복된 데이터가 있을때 삭제하는 방법

Data는 중복되더라도 ROW ID는 Unique 하므로 이를 바탕으로
Analytic function 이나 self join 을 이용하여 삭제할 수 있음

1. Analytic Function
delete from dup where rowid in
     ( select rowid from
                  ( select row_number() over (partition by empno order by sal ) rnum from dup )
            where rnum>1)


2. Analytic Function 이 적용 안 될때
delete from dup a where rowid > (select min(rowid) from dup b where a.empno=b.empno)


-- 관련 table
create table dup(empno varchar2(4), sal number)

[바로가기 링크] : http://coolx.net/cboard/develop/129



Name
Password
Comment
Copyright © 1999-2017, swindler. All rights reserved. 367,611 visitor ( 1999.1.8-2004.5.26 ), 2,405,771 ( -2017.01.31)

  2HLAB   2HLAB_Blog   RedToolBox