데이터 조회시 중복된 데이터를 걸러내기 위한 쿼리중 한가지 방법 중에 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 로 검출하면 중복처리를 할수있다.
'DB > Oracle' 카테고리의 다른 글
오라클 사전정보 조회 (0) | 2016.02.04 |
---|---|
필드값을 레코드 값으로 변환 (0) | 2016.02.04 |
oracle 랜덤하게 조회 (0) | 2016.02.04 |
ORDER BY 대신에 INDEX 힌트를 사용하자.. (0) | 2016.02.04 |
정기적으로 실행되는 이벤트 처리 쉘 (0) | 2016.02.04 |