본문 바로가기
DBMS/ORACLE

[ORACLE]오라클_DISTINCT와 GROUP BY의 차이

by 썸머워즈 2019. 2. 8.
반응형

DISTINCT VS GROUP BY

오라클의 DISTINCT 와 GROUP BY 의 차이에 대해 알아보도록 하자.

 

두개가 각 사용되는 시점에 대해 얘기하자면

DISTINCT유니크한(중복을 제거)한 데이터를 조회하는 경우에 사용되며,

GROUP BY지정한 데이터를 그룹핑해서 그 결과를 가져오는 경우에 사용된다.

 

둘의 설명이 다르지만 결과는 동일하게 중첩되는 데이터를 제거한 결과를 보여주는 것에서는 같다고 볼 수 있다.


예제 1) DISTINCT 와 GROUP BY

-- DISTINCT
SELECT DISTINCT depart_no FROM emp
SELECT DISTINCT depart_no, family_name FROM emp

-- GROUP BY
SELECT depart_no FROM emp GROUP BY depart_no
SELECT depart_no, family_name FROM emp GROUP BY depart_no, family_name

 

예제에서 사용된 DISTINCT 와 GROUP BY 구문의 결과는 동일하다.

 

하지만 이 둘에게도 차이점이 존재하는데,

DISTINCT는 단순 그룹핑 작업만 수행하며 GROUP BY는 그룹핑 + 정렬 작업을 같이 실행한다.

 

이렇게 기능상의 차이가 존재하여 성능면에서도 DISTINCT가 더 빠르다고 볼 수 있으니

정렬기능이 필요없는 그룹핑 작업에서는 DISTINCT를 사용해주는것이 좋다.


추가적으로 DISTINCT 와 GROUP BY HAVING 에 대해 알아보고 싶다면 아래 글을 한번 읽어보자.

 

https://mine-it-record.tistory.com/32

 

[ORACLE] SELECT문 중복제거(ft. DISTINCT)

SELECT 할 때 중복을 제거하는 경우에 많이 사용되는 DISTINCT에 대해 알아보자. SELECT를 해서 데이터를 가져올 때 중복되는 데이터 없이 가져오고 싶을 때 사용된다. 구문은 참 간단하다. ▷ 구문 SELE

mine-it-record.tistory.com

https://mine-it-record.tistory.com/37

 

[ORACLE]오라클_SELECT문 그룹화(GROUP BY / HAVING)

GROUP BY - 데이터들을 원하는 그룹으로 나누는 역할 - 어떤 기준으로 그룹할 경우 다른 값들을 가져올때 역시 그룹핑하여 가져와야한다. - 집계함수 SUM, MIN, MAX, AVG, COUNT 등이 함께 사용된다. (https:/

mine-it-record.tistory.com

 

반응형


댓글

TOP