Database/SQL

Oracle 오라클 중복 데이터 찾는 방법

리커니 2014. 5. 8.
반응형

 

Oracle 오라클 중복 데이터 찾는 방법

 

 

이번 포스팅에서는 중복된 데이터를 찾는 방법에 대해서 알아보도록 하겠습니다.

 

보통 실무에서 시스템이 없는 고객이 관리하고 있는 데이터는

엑셀이나 기타 스프레드시트로 관리하는 경우가 많습니다.

이렇게 관리된 데이터는 중복이나 Null 값이 존재할 수 밖에 없기 때문에

데이터베이스 설계 시 데이터의 무결성을 유지하기 위해

유니크(Unique) 하고 Null 값을 포함하지 않는 Key 값을 설정해야 합니다.

 

 

(모든 데이터가 중복이 있다면 일련번호 같은 Key를 설정해야겠죠.)

 

이럴 때! 중복된 데이터를 찾는 방법이 아주 유용하게 사용됩니다.

 

그럼 실제로 중복된 데이터를 추출해보도록 하죠.

 

CM_KIK_B라는 테이블이 있습니다. 대한민국 법정동코드가 들어있는 테이블인데요.

굳이 구굴링까지 안하셔도 구할 수 있는 OpenAPI 입니다.

 

 

 

간단히 중복된 데이터를 찾는 방법은 

중복된 데이터를 찾고자 하는 컬럼으로 GROUP BY 한 후에 HAVING 절로 COUNT 가 1 이상인 것을 

SELECT 하면 됩니다.

(GROUP BY 와 HAVING 절의 사용의 아래의 Link 를 참조하세요.)

 

Link : 오라클 그룹함수 SUM, AVG, MAX, MIN, COUNT의 사용 GROUP BY HAVING

 

오라클 그룹함수 SUM, AVG, MAX, MIN, COUNT의 사용 GROUP BY HAVING

오라클 그룹함수 SUM, AVG, MAX, MIN, COUNT의 사용 GROUP BY HAVING * 많이 사용되는 그룹함수의 종류 함수명 기능 SUM 합을 구한다. AVG 평균을 구한다. MAX 최댓값을 구한다. MIN 최솟값을 구한다. COUNT 행의..

aljjabaegi.tistory.com

 

전국적으로 중복되는 '동(KIKB_DONG_NM)' 을 찾아보도록 합시다.

 

SELECT T1.KIKB_DONG_NM
     , COUNT(*)
  FROM CM_KIK_B T1
 GROUP BY T1.KIKB_DONG_NM
HAVING COUNT(*) > 1 ;

 

[결과]

 

 

각 동에 대한 중복된 숫자가 나왔습니다. 교동은 전국적으로 18개나 있네요.

 

 

 

분석함수를 사용하여 중복된 데이터를 SELECT 할 수도 있습니다.

 
SELECT T1.*
  FROM (
        SELECT S1.KIKB_DO_NM
             , S1.KIKB_DONG_NM
             , COUNT(*) OVER(PARTITION BY S1.KIKB_DONG_NM) AS OVERLAP
          FROM CM_KIK_B S1
          ) T1
  WHERE T1.OVERLAP > 1 ;

 

[결과]

 

 

이번엔 시도 도 같이 SELECT 해왔습니다. 각 중복된 '동'에 대해서 그 동이 어느 '시도'에 있는지 확인 할 수 있죠.

 

(위에서 사용된 서브쿼리의 사용은 아래의 Link를 참조하세요.)

 

Link : Subquery 서브쿼리사용법, ALL, ANY, IN, EXISTS

 

Subquery 서브쿼리사용법, ALL, ANY, IN, EXISTS

Subquery 서브쿼리사용법, ALL, ANY, IN, EXISTS * 서브쿼리의 사용. 서브쿼리란? 서브쿼리는 SELECT문 내의 또다른 SELECT문이라고 생각하시면 됩니다. 서브쿼리는 왜 사용하나? 기본적인 SELECT문의 데이터 외에..

aljjabaegi.tistory.com

 

중복되는 데이터를 찾았으니 찾은 데이터를 삭제 해야 하는 경우 아래를 Link를 참조하세요.

 

Link : Oracle 오라클 중복 데이터 제거, ROWID

 

Oracle 오라클 중복 데이터 제거, ROWID

Oracle 오라클 중복 데이터 제거, ROWID 이번 포스팅에서는 중복된 데이터가 있을때 하나의 데이터만 남기고 삭제하는 방법에 대해서 포스팅 하겠습니다. (중복된 데이터를 찾는 법은 아래의 Link를 참조하세요.)..

aljjabaegi.tistory.com

 

반응형

댓글

💲 추천 글