제7절 Group By, Having 절
1. 집계 함수
- 여러 행의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 다중행 함수
- GROUP BY 절은 행들을 소 그룹화 한다.
- SELECT, HAVING, ORDER BY 절에 사용할 수 있다.
2. GROUP BY / HAVING
SELECT 칼럼명 FROM 테이블명
WHERE 조건식
GROUP BY 칼럼 or 표현식
HAVING 그룹조건식
- GROUP BY 절을 통해 소그룹별로 기준을 정한 후, SELECT 절에 집계 함수를 사용
- 집계 함수의 통계 정보는 NULL 값을 가진 행을 제외하고 수행한다.
- GROUP BY 절에서는 ALIAS 명을 사용할 수 없다.
- 집계 함수는 WHERE 절에는 올 수 없다.
- WHERE는 GROUP BY로 나누기 전에 먼저 실행된다.
- HAVING은 GROUP BY로 나누어진 그룹에 대한 집계함수의 조건식
3. CASE 표현을 활용한 월별 데이터 집계
- “집계 함수(CASE( ))~GROUP BY” 기능은, 모델링의 제1정규화로 인해 반복되는 칼럼의 경우 구분 칼럼을 두고 여러 개의 레코드로 만들어진 집합을, 정해진 칼럼 수만큼 확장해서 집계 보고서를 만드는 유용한 기법이다.
4. 집계 함수와 NULL
- 리포트 출력 때 NULL이 아닌 0을 표시하고 싶은 경우에는 NVL(SUM(SAL),0)이나, ISNULL(SUM(SAL),0)처럼 전체 SUM의 결과가 NULL인 경우(대상 건수가 모두 NULL인 경우)에만 한 번 NVL/ISNULL 함수를 사용하면 된다.
'자격증 > SQLD' 카테고리의 다른 글
SQLD 정리 / 과목 2 SQL 기본 및 활용 / 제1장 SQL 기본 / 제9절 조인(JOIN) (0) | 2021.05.26 |
---|---|
SQLD 정리 / 과목 2 SQL 기본 및 활용 / 제1장 SQL 기본 / 제8절 Order By 절 (0) | 2021.05.26 |
SQLD 정리 / 과목 2 SQL 기본 및 활용 / 제1장 SQL 기본 / 제6절 함수 (0) | 2021.05.26 |
SQLD 정리 / 과목 2 SQL 기본 및 활용 / 제1장 SQL 기본 / 제5절 WHERE절 (0) | 2021.05.26 |
SQLD 정리 / 과목 2 SQL 기본 및 활용 / 제1장 SQL 기본 / 제4절 TCL (0) | 2021.05.26 |