DISTINCT = 컬럼 내 데이터를 중복을 제거해 조회한다.
GROUP BY = 컬럼 내 데이터를 Unique한 값을 기준으로 그 결과를 가져온다.
DISTINCT 와 GROUP BY 차이
두 작업은 기능적으로는 약간의 차이가 있지만, 동일한 형태의 작업이다.
쉽게 생각해서, DISTICNT는 그룹핑만, GROUP BY는 그룹핑 + 정렬의 과정이다. 때문에 연산 속도도 DISTINCT가 더 빠르며 같은 그룹핑 작업을 진행하므로 두 연산을 동시에 할 수 없기도 하다.
- - GROUP BY 절은 데이터들을 원하는 그룹으로 나눌 수 있다.
- - 나누고자 하는 그룹의 컬럼명을 SELECT절과 GROUP BY절 뒤에 추가하면 된다.
- - 집계함수와 함께 사용되는 상수는 GROUP BY 절에 추가하지 않아도 된다. (개발자 분들이 많이 실수 함)
위 그림에서 gender을 그룹화 시켜서 모든 사람의 인원수를 count해서
남자 : M, 여자 : F 표시한다.
HAVING 절
- - WHERE 절에서는 집계함수를 사용 할 수 없다.
- - HAVING 절은 집계함수를 가지고 조건비교를 할 때 사용한다.
- - HAVING절은 GROUP BY절과 함께 사용이 된다.
'개발일지 > Database' 카테고리의 다른 글
데이터베이스 (사용자 생성, 권한 확인) (0) | 2022.10.13 |
---|---|
LIMIT, ORDER BY (0) | 2022.10.13 |
집계함수 (MAX, MIN, SUM, COUNT, ROUND ) (0) | 2022.10.13 |
서브쿼리 활용한 AVG (0) | 2022.10.13 |
서브쿼리 활용한 SUM (0) | 2022.10.13 |
댓글