제 7절 GROUP BY, HAVING 절
1. 집계함수
: 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수 중 GROUP BY (행을 소그룹화), SELECT, HAVING, ORDER BY에서 사용
* 집계함수 종류
- COUNT (*) : NULL포함 행의 개수 출력
- COUNT (표현식) : NULL제외 행의 개수 출력
- SUM ([DISTINCT|ALL] 표현식) : NULL값 제외 합계 출력
- AVG ([DISTINCT|ALL] 표현식) : NULL값 제외 평균 출력
- MAX ([DISTINCT|ALL] 표현식) : 표현식 최대값 출력 (문자,날짜,데이터타입 사용가능)
- MIN ([DISTINCT|ALL] 표현식) : 표현식 최소값 출력 (문자,날짜,데이터타입 사용가능)
- 기타 통계 함수 : 밴더 별로 다양한 통계식
2. GROUP BY 절
* GROUP BY 절을 통해 소그룹 별 기준을 정한 후 SELECT절에 집계 함수 사용
* 집계함수의 통계정보는 NULL값을 가진 행을 제외하고 수행
* GROUP BY 절에서는 ALIAS 사용불가
* 집계함수는 WHERE절에 올 수 없다.
* WHERE절은 전체 데이터를 GROUP으로 나누기 전에 행들을 미리 제거 시킨다.
* HAVING절은 GROUP BY절의 기준 항목이나 소그룹의 집계함수를 이용한 조건을 표시
* GROUP BY 절에 의한 소그룹별로 만들어진 집계 데이터 중, HAVING절에서 제한을 두어 조건을 만족하는 내용만 출력
* HAVING절은 일반적으로 GROUP BY 절 뒤에 위치
3. HAVING 절
4. CASE 표현을 활용한 월별 데이터 집계
: “집계함수 (CASE())~GROUP BY” 기능은, 모델링의 제 1정규화로 인해 반복되는 칼럼의 경우 구분 칼럼의 경우 구분 칼럼을 두고 여러 개의 레코드로 만들어진 집합을, 정해진 칼럼 수 만큼 확장해서 집계 보고서를 만드는 유용한 기법
5. 집계함수와 NULL
: NVL/ISNULL 사용시 부하 증가-> 사용X
CASE 표현 사용시 ELSE절을 생략하면 Default값이 NULL
'자격증 > SQLD' 카테고리의 다른 글
[#SQLD] 제 9절 조인(JOIN) (0) | 2023.02.27 |
---|---|
[#SQLD] 제 8절 ORDER BY 절 (0) | 2023.02.27 |
[#SQLD] 제 6절 함수 (0) | 2023.02.27 |
[#SQLD] 제 5절 WHERE절 (0) | 2023.02.27 |
[#SQLD] 제 4절 TCL (0) | 2023.02.27 |
댓글