본문 바로가기
DataBase

중복 데이터 제거(partition by)

by eqzero 2007. 10. 12.
데이터 조회시 중복된 데이터를 걸러내기 위한 쿼리중 한가지 방법 중에 partition by 방법이다.

T_MEM 테이블과 T_MEM_MORE 테이블에 각각 USERID란 컬럼이 PK, FK로 잡혀있고
T_MEM 테이블 기준으로 중복 제거를 하려면 아래와 같다.

SELECT a.userid, row_number() over(partition by b.userid order by b.userid) overlap
FROM t_mem a, t_mem_more b
WHERE a.userid = b.userid

그러면 데이터는 아래와 같다
USERID OVERLAP
test   1
test   2
test_1   1
test_2   1
test_2   2
....

대충 이런식이다.-_-;
저기에서 overlap =1 로 검출하면 중복처리를 할수있다.