만일 불러오고자 하는 데이터에서 중복을 제거하고 싶다면 '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 {테이블명} 의 형태로 쓰면 된다.
이 때 GROUP BY는 그루핑 뿐만 아니라 정렬까지 수행하기 때문에 속도면에서 DISTINCT가 빠를 수 있다.
상황에 맞게 적절히 사용하자.
감사합니다.