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
댓글