DataBase
중복 데이터 제거(partition by)
eqzero
2007. 10. 12. 14:06
데이터 조회시 중복된 데이터를 걸러내기 위한 쿼리중 한가지 방법 중에 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 로 검출하면 중복처리를 할수있다.
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 로 검출하면 중복처리를 할수있다.