[Oracle] 오라클 중복데이터 조회 방법(쿼리첨부)
- 데이터베이스/Oracle
- 2021. 7. 8.
안녕하세요. 오늘은 오라클 중복데이터를 찾는 방법을 알아보겠습니다.
실무를 하다보면 중복된 값을 찾아야 하는 경우가 자주 생깁니다.
실무자들이 요구하는 특정데이터를 찾는 경우, 또는 잘못된 데이터를 찾아야 하는경우 등등.
이럴경우에는 그룹함수를 사용하여 중복된 데이터를 찾으면 됩니다.
오라클 그룹함수 : GROUP BY, HAVING, PARTITION BY
1. 중복 조회를 할 컬럼을 GROUP BY로 그룹핑 후 HAVING 조건에 COUNT 1이상인 것을 조회
2. 분석함수(PARTITION BY)를 사용하여 조회
테스트를 위해 SAMPLE 데이터를 준비하였습니다.
아래 SAMPLE 테이블에는 TV와 휴대폰이 중복데이터로 있습니다.
중복된 TV와 휴대폰을 찾아보겠습니다.
1. GROUP BY HAVING 을 사용하여 중복데이터 조회
- 중복데이터를 찾을 컬럼(goods_nm)
- count(*)는 그룹화된 goods_nm 의 갯수를 의미
SELECT goods_nm, count(*)
FROM TEMP01018
GROUP BY goods_nm
HAVING count(*) > 1;
실행결과
- TV와 휴대폰의 중복된 데이터의 갯수를 확인
만약 중복된 데이터의 goods_cnt의 합을 구하고 싶으면 이렇게 사용하면 됩니다.
- GOODS_CNT를 sum 함수로 사용하면 됩니다.
SELECT goods_nm, SUM(GOODS_CNT)
FROM TEMP01018
GROUP BY goods_nm
HAVING count(*) > 1;
실행결과
2. 분석함수 PARTITION BY 를 이용하여 중복데이터 조회
SELECT DISTINCT T1.*
FROM (
SELECT a.goods_nm
, COUNT(*) OVER(PARTITION BY a.goods_nm) AS goodsCnt
FROM TEMP01018 a
) T1
WHERE T1.goodsCnt > 1 ;
실행결과
'데이터베이스 > Oracle' 카테고리의 다른 글
[ORACLE] ORA-00933 SQL command not properly ended 오류 해결 (0) | 2021.12.20 |
---|---|
[ORACLE] 오라클 GREATEST, LEAST 함수사용 및 주의사항 (0) | 2020.08.18 |
[MySQL] root 패스워드 변경방법(MariaDB 10.4 이상) (0) | 2020.07.24 |
[ORACLE] 오라클 몫, 나머지 구하는 방법(/, MOD) (0) | 2020.07.20 |
[ORACLE] 오라클 문자(CHR) 아스키코드(ASCII) 변환방법 (0) | 2020.07.19 |