반응형
특정컬럼에 대하여 중복인 항목을 삭제하거나 업데이트 하고자 해서 오라클 쿼리를 연구하다가
도움되는 함수를 공부해서 남긴다.
역시 쿼리는 복잡복잡~
주석처리된 부분을 제거 하면서 한번씩 실행해 보면 감이 온다.
with 는 테스트 예제나 가독성을 위한 쿼리를 위해 사용하면 좋고,
row_number() over 조합은 중복된 항목을 삭제할때 괜찮았다.
원래 목적은 유니크한 seqno 를 붙이는 거겠지만,
회사 쿼리할때는 그런일은 거의 없었다;; rank 도 물론 그래서 거의 않씀;; 하지만
중복삭제에도 이렇게 이용되는거 보면 어딘가에 또 쓸모가 있을듯?
참고로 중복삭제시에 쓰였던 쿼리들
도움되는 함수를 공부해서 남긴다.
역시 쿼리는 복잡복잡~
rank() -- 동일값 동일한 순위dense_rank() -- 중복 rank 의 수와 무관하게 순위row_number() -- 유니크한 순위over ( [partition by col1] order by col2 [asc|desc] ) -- 위같은 그룹함수와 같이 쓰임
with 구분 -- sub query를 단락별로 구분할때 이용
주석처리된 부분을 제거 하면서 한번씩 실행해 보면 감이 온다.
with 는 테스트 예제나 가독성을 위한 쿼리를 위해 사용하면 좋고,
row_number() over 조합은 중복된 항목을 삭제할때 괜찮았다.
원래 목적은 유니크한 seqno 를 붙이는 거겠지만,
회사 쿼리할때는 그런일은 거의 없었다;; rank 도 물론 그래서 거의 않씀;; 하지만
중복삭제에도 이렇게 이용되는거 보면 어딘가에 또 쓸모가 있을듯?
참고로 중복삭제시에 쓰였던 쿼리들
반응형