DISTINCT는 중복되는 데이터 제거를 위해 주로 UNIQUE한 Column이나 Tuple(Record)를 조회하는 경우에 사용한다.
정렬(Filesort)하지 않고 결과를 출력해, GROUP BY에 비해 성능이 빠르다.
DISTINCT는 내부적으로 GROUP BY와 동일한 코드를 사용
DISTINCT는 "Grouping" 작업만, GROUP BY의 "Grouping" + "정렬" 작업
Example
// column1을 중복 제거 출력
SELECT DISTINCT column1
FROM table;
DISTINCT는 함수가 아니라 키워드이다.
DISTINCT를 마치 함수인 것처럼 괄호를 사용하여 아래와 같은 상황에 사용하게 되면 결과를 출력할 수 없다.
// column1 컬럼은 unique 값, column2는 전체 값 출력을 원하지만
// column2 전체 값을 출력할 수 없다.
SELECT DISTINCT(column1), column2
FROM table;
SELECT절에 DISTINCT라는 키워드가 있으면, MySQL은 SELECT되는 모든 Column(Tuple)들에 대해서 DISTINCT를 적용해서 결과를 출력한다.