GROUP BY vs DISTINCT
DISTINCT
-
DISTINCT는 중복되는 데이터 제거를 위해 주로 UNIQUE한 Column이나 Tuple(Record)를 조회하는 경우에 사용한다.
-
정렬(Filesort)하지 않고 결과를 출력해, GROUP BY에 비해 성능이 빠르다.
-
DISTINCT는 내부적으로 GROUP BY와 동일한 코드를 사용
-
DISTINCT는 "Grouping" 작업만, GROUP BY의 "Grouping" + "정렬" 작업
-
Example
// column1을 중복 제거 출력
SELECT DISTINCT column1
FROM table;
GROUP BY
- GROUP BY는 데이터를 Grouping해서, 집계 함수를 사용하고 그 결과를 정렬해 가져오는 경우에 사용한다.
- 주로 집계 함수 사용을 위해 사용한다.
- Grouping한 Column의 데이터만 가져오기때문에 출력 결과는 DISTINCT와 비슷하다.
- 하지만 DISTINCT의 출력 결과는 정렬된 결과가 아니지만, GROUP BY는 정렬된 결과를 보내준다.
- 정렬(Filesrot)작업을 하기 때문에 DISTINCT보다 성능이 느리다
!!DISTINCT는 함수가 아니다.
DISTINCT는 중복되는 데이터 제거를 위해 주로 UNIQUE한 Column이나 Tuple(Record)를 조회하는 경우에 사용한다.
정렬(Filesort)하지 않고 결과를 출력해, GROUP BY에 비해 성능이 빠르다.
DISTINCT는 내부적으로 GROUP BY와 동일한 코드를 사용
DISTINCT는 "Grouping" 작업만, GROUP BY의 "Grouping" + "정렬" 작업
Example
// column1을 중복 제거 출력
SELECT DISTINCT column1
FROM table;
- GROUP BY는 데이터를 Grouping해서, 집계 함수를 사용하고 그 결과를 정렬해 가져오는 경우에 사용한다.
- 주로 집계 함수 사용을 위해 사용한다.
- Grouping한 Column의 데이터만 가져오기때문에 출력 결과는 DISTINCT와 비슷하다.
- 하지만 DISTINCT의 출력 결과는 정렬된 결과가 아니지만, GROUP BY는 정렬된 결과를 보내준다.
- 정렬(Filesrot)작업을 하기 때문에 DISTINCT보다 성능이 느리다
!!DISTINCT는 함수가 아니다.
DISTINCT는 함수가 아니라 키워드이다.
DISTINCT를 마치 함수인 것처럼 괄호를 사용하여 아래와 같은 상황에 사용하게 되면 결과를 출력할 수 없다.
// column1 컬럼은 unique 값, column2는 전체 값 출력을 원하지만
// column2 전체 값을 출력할 수 없다.
SELECT DISTINCT(column1), column2
FROM table;
SELECT절에 DISTINCT라는 키워드가 있으면, MySQL은 SELECT되는 모든 Column(Tuple)들에 대해서 DISTINCT를 적용해서 결과를 출력한다.
참고 : https://velog.io/@gillog/MySQL-DISTINCT-GROUP-BY
Author And Source
이 문제에 관하여(GROUP BY vs DISTINCT), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@emawlrdl/GROUP-BY-vs-DISTINCT저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)