반응형
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
https://mine-it-record.tistory.com/37
반응형
댓글