DBMS/Oracle
[Oracle] 중복 데이터 찾기 / 중복 데이터 개수 찾기 GROUP BY / HAVING / COUNT
DEV_SE
2021. 3. 5. 14:30
중복 데이터 건수 찾기
아래 쿼리를 통해 두가지를 할 수 있다.
1. 중복되고 있는 데이터 조회
2. 중복된 데이터의 개수 조회
(* 활용시 부가적 기능 : 중복 제거)
중복체크를 원하는 컬럼을 그룹핑해서,
그룹핑 조건(HAVING 절) 에 COUNT' 로 '1건 이상(초과)'을 조회하면 중복 되고 있는 데이터를 알 수 있다.
해당 데이터가 몇건 중복되는지 확인하려면 COUNT(COLUM_NAME) 로 찾을 수 있다.
Tip
* HAVING 절에 그룹핑한 조건의 raw가 1건 초과인 경우를 조회하고 있기 때문에, 조회된 결과는 모두 중복데이터이며 COUNT를 통해 몇건의 중복이 발생하는지 확인할 수 있다.
SELECT 컬럼1, 컬럼2, ... , 컬럼n
, COUNT(컬럼1) -- 중복 갯수
FROM 테이블명
GROUP BY 컬럼1, 컬럼2, ... , n
HAVING COUNT(컬럼1) > 1
예제
MEMBER_ID, TIMESTAMP 데이터별로 중복되고 있는 데이터가 3건 조회되며,
해당 데이터는 각2건씩 중복되고 있었다.
* CNT 가 2씩 동일해서 헷갈릴 수 있는데, 실 데이터가 2건씩 중복되고 있었음.
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건 있다.
반응형