본문 바로가기
DBMS/Oracle

[Oracle] 중복 데이터 찾기 / 중복 데이터 개수 찾기 GROUP BY / HAVING / COUNT

by 성은2 2021. 3. 5.

 

중복 데이터 건수 찾기

 

아래 쿼리를 통해 두가지를 할 수 있다.

1. 중복되고 있는 데이터 조회

2. 중복된 데이터의 개수 조회

 

중복체크를 원하는 컬럼을 그룹핑해서,

그룹핑 조건(HAVING 절) 에 COUNT' 로 '1건 이상'을 조회하면 중복 되고 있는 데이터를 알 수 있다.

 

해당 데이터가 몇건 중복되는지 확인하려면 COUNT(COLUM_NAME)으로 찾을 수 있다.

 

 

Tip

* HAVING 절에 그룹핑한 조건의 raw가 1건 이상인 경우를 조회하고 있기 때문에, 조회된 결과는 모두 중복데이터이며 CNT를 통해 몇건의 중복이 발생하는지 확인할 수 있다.

SELECT 컬럼1, 컬럼2, ... , 컬럼n
     , COUNT(컬럼1) -- 중복 갯수
  FROM 테이블명
 GROUP BY 컬럼1, 컬럼2, ... , n
HAVING COUNT(컬럼1) > 1

 

 

 

 

 

예제 

MEMBER_ID, TIMESTAMP 데이터별로 중복되고 있는 데이터가 3건 조회되며,

해당 데이터는 각2건씩 중복되고 있었다.

* CNT 가 2씩 동일해서 헷갈릴 수 있는데, 실 데이터의 중복 컬럼이 2건씩 중복되고 있었음.

 

 

조건별로 데이터가 각 2개씩 중복되고 있음을 확인 가능하다. = 총 6건 중복

 

 

MEMBER_ID가 2 이고, TIMESTAMP가 15:44:00인 raw 데이터가 2건 있다.

MEMBER_ID가 2 이고, TIMESTAMP가 16:21:00인 raw 데이터가 2건 있다.

MEMBER_ID가 2 이고, TIMESTAMP가 16:22:00인 raw 데이터가 2건 있다.