본문 바로가기
자격증/SQLD

[#SQLD] 제 7절 GROUP BY, HAVING 절

by dopal2 2023. 2. 27.
반응형

7GROUP 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

댓글