[SQL] 중복제거 (DISTINCT, GROUP BY)

김주경·2020년 11월 26일
1

데이터의 중복 제거 쿼리


만일 불러오고자 하는 데이터에서 중복을 제거하고 싶다면 'DISTINCT'나 'GROUP BY'를 사용하면 된다.
예를 들어 아래와 같은 테이블이 있다고 가정했을 때,

NAME CITY CITY_CODE
김아무개 서울 02
이아무개 경기 031
박아무개 서울 02
오아무개 부산 051

CITY_CODE가 02인 도시의 이름을 불러오는 쿼리를 작성해보자

SELECT CITY FROM TABLE WHERE CITY_CODE = 02;

이 경우 다음과 같은 결과과 나오는데, 이때 서울이라는 값이 중복되어 호출된다. 이러한 중복을 없애는 쿼리가 DISTINCT, GROUP BY 다.

CITY
서울
서울

문법

중복을 없애는 쿼리는 간단하다.

SELECT DISTINCT CITY FROM TABLE WHERE CITY_CODE = 02;

DISTINCT의 경우에는 SELECT DISTINCT {컬럼명} FROM {테이블명} {조건절} 의 형태로 쓰면 되고,

SELECT CITY FROM TABLE WHERE CITY_CODE = 02 GROUP BY CITY ;

GROUP BY의 경우에는 SELECT {컬럼명} FROM {테이블명} {조건절} GROUP BY {테이블명} 의 형태로 쓰면 된다.


차이

  • DISTINCT : 중복을 없애주지만 정렬을 해주지 않는다.
  • GROUP BY : 중복을 없애주고 정렬도 해준다.

이 때 GROUP BY는 그루핑 뿐만 아니라 정렬까지 수행하기 때문에 속도면에서 DISTINCT가 빠를 수 있다.
상황에 맞게 적절히 사용하자.

profile
안냐세온

1개의 댓글

comment-user-thumbnail
2021년 5월 12일

감사합니다.

답글 달기