1. 집계함수
-
특성
- 여러 행이 그룹이 되어 그룹당 단 하나의 결과를 돌려누는 함수
- GROUP BY절은 행들을 소그룹화
- SELECT, HAVING, ORDER BY 절에서 사용
-
사용방법
집계함수명(ALL 칼럼이나 표현식)
- ALL : 디폴트 옵션이므로 생략 가능
- DISTINCT : 같은 값을 하나의 데이터로 간주할 때 사용하는 옵션
2. GROUP BY 절
FROM, WHERE 절 뒤에 오며 데이터들을 소그룹으로 분류하여 소그룹에 대한 항목별로 통계 정보를 얻을 때 추가로 사용
SELECT DISTINCT 칼럼명 ALIAS명
FROM 테이블명
WHERE 조건식
GROUP BY 칼럼(Column)이나 표현식
HAVING 그룹조건식 ;
- 특성
- GROUP BY 절을 통해 소그룹별 기준을 정하고 SELECT 절에서 집계 함수 사용
- 집계함수의 통계 정보는 NULL 값을 가진 행을 제외하고 수행(COUNT(*) 예외)
- GROUP BY 절에서는 SELECT 절과 달리 ALIAS를 사용할 수 없음
- 집계함수는 WHERE 절에는 올 수 없음(GROUP BY 절보다 WHERE 절이 먼저 수행됨)
- WHERE 절은 전체 데이터를 GROUP으로 나누기 전에 행들을 미리 제거하는 역할
- HAVING 절은 GROUP BY 절의 기준 항모이나 소그룹의 집계 함수를 이용한 조건을 표시할 수 있음
- GROUP BY 절에 의한 소그룹별로 만들어진 집계 데이터 중, HAVING 절에서 제한 조건을 두어 조건을 만족하는 내용만 출력
- HAVING 절은 일반적으로 GROUP BY 절 뒤에 위치
3. HAVING 절
- WHERE 절에는 집계함수를 사용할 수 없음
- GROUP BY 절과 HAVING 절의 순서를 바꾸어서 수행해도 동일한 결과가 출력됨(But, 순서 지키는 것이 좋음)
- SELECT 절에 사용되지 않은 칼럼이나 집계함수가 아니더라도 GROUP BY 절의 기준 항목이나 소그룹의 집계 함수를 이용한 조건을 표시할 수 있음