개발/데이터베이스

[Oracle] 중복 데이터를 찾는 방법

미니시리 2023. 2. 6. 03:18

오라클을 사용할 때 중복된 데이터의 정보를 확인하기 위해서 중복 된 데이터의 조회가 필요할 때가 있습니다.
이때 사용하는 방법에 대해서 알아보겠습니다.

 

GROUP BY절과 집계함수 사용

GROUP BY 함수를 사용할 경우 해당 컬럼에 대한 중복된 건수를 확인 할 수 있습니다.

SELECT 	country_code
	, country
    , COUNT(*) AS cnt
   FROM travel
  GROUP BY country_code, country HAVING COUNT(*) > 1

위와 같이 조회하면 country_code와 country 컬럼의 값이 동일한 값을 가진 데이터의 숫자를 cnt라는 컬럼으로 확인할 수 있습니다.

 

OVER절과 분석함수 사용

중복된 컬럼의 정보 뿐만 아니라 원하는 중복된 데이터를 가진 모든 컬럼을 같이 조회할 수 있습니다.
cnt 컬럼의 값은 조회된 데이터 값의 중복된 개수 입니다.

SELECT 	a.*
	FROM (
    	SELECT	country_code
			, country
			, user_id
			, user_name
			, COUNT(*) OVER(PARTITION BY country_code, country) AS cnt
		FROM travel
    	) a
    WHERE a.cnt > 1