IT/SQL

[Oracle] 중복 데이터 확인하기

김비서 2018. 11. 4. 15:02
728x90

중복 데이터를 확인하는 방법


1. GROUP BY 절과 HAVING 절을 사용하는 방법


(예시)

1
2
3
4
5
SELECT EMP_NAME, COUNT(1) AS CNT
  FROM EMP
 WHERE DEPT_NO = '1000'
 GROUP BY EMP_NAME
HAVING COUNT(1> 1



[GROUP BY]

    •  집계 함수와 상수가 함께 SELECT 되는 경우, GROUP BY 절에 상수를 추가하면 된다. 

[HAVING]

    • 집계함수는 HAVING 절에서 조건을 비교한다. 
    • WHERE절에서는 집계 함수를 사용할 수 없다.
    • HAVING 절은 GROUP BY 절과 함께 사용한다. 


2. DISTINCT를 사용하는 방법


(예시1 - 중복을 제거한 데이터를 출력)

1
2
3
SELECT DISTINCT EMP_NAME
  FROM EMP
 WHERE DEPT_NO = '1000'



(예시2 - 중복을 제거한 데이터의 갯수를 출력)

1
2
3
SELECT COUNT(DISTINCT EMP_NAME)
  FROM EMP
 WHERE DEPT_NO = '1000'



[DISTINCT]

    • 주로 UNIQUE한 데이터를 조회하는 데 사용한다.
    • GROUP BY 와 같은 결과를 반환, 집계함수가 사용되지 않을 경우에는 DISTINCT를 사용하는 것이 유용하다.
    • DBMS 엔진 내에서 데이터에 대해 정렬 연산을 사용하므로, 출력된 순서가 알파벳 순으로 정렬된다. 


반응형