자격증/SQLD

[SQLD] SQL 기본 - GROUP BY, HAVING 절

숭코기 2023. 8. 31. 15:28
728x90

01. 집계 함수(Aggregate Function)

집계 함수의 특성

  • 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수이다
  • GROUP BY 절은 행들을 소그룹화 한다
  • SELECT 절, HAVING 절, ORDER BY 절에 사용할 수 있다
집계함수명 ([DISTINCT | ALL] 칼럼이나 표현식)

-- ALL: Default 옵션으로 생략 가능함
-- DISTINCT: 같은 값을 하나의 데이터로 간주할 때 사용하는 옵션

 

집계 함수의 종류

집계 함수 설명
COUNT(*) NULL 값을 포함한 행의 수 출력
COUNT(표현식) 표현식 값 중 NULL 값을 제외한 행의 수 출력
SUM 총 합계
AVG 평균
MAX 최댓값 (문자, 날짜, 숫자 가능)
MIN 최솟값(문자, 날짜, 숫자 가능)
STDDEV 표준편차
VARIAN 분산

 

02. GROUP BY 절

데이터들을 작은 그룹으로 분류하여 소그룹에 대한 항목별로 통계 정보를 출력

SELECT [DISTINCT] 칼럼명 [ALIAS명]
FROM 테이블명
[WHERE 조건식]
[GROUP BY 칼럼이나 표현식]
[HAVING 그룹조건식];

 

03. HAVING 절

GROUP BY 절의 기준 항목이나 소그룹의 집계 함수를 이용한 조건을 표시할 수 있다.

HAVING 절은 일반적으로 GROUP BY절 뒤에 위치한다.

 

💡 GROUP BY절과 HAVING절의 특성

- GROUP BY절을 통해 소그룹별 기준을 정한 후, SELECT 절에 집계 함수를 사용한다
- 집계 함수의 통계 정보는 NULL 값을 가진 행을 제외하고 수행한다
- GROUP BY절에서는 SELECT 절과 달리 ALIAS 명을 사용할 수 없다
- 집계 함수는 WHERE절에 올 수 없다 (집계 함수를 사용할 수 있는 GROUP  BY절보다 WHERE절이 먼저 수행됨)
- WHERE절은 전체 데이터를 GROUP절의 기준 항목이나 소그룹의 집계 함수를 이용한 조건을 표시할 수 있다
- GROUP BY절에 의한 소그룹별로 만들어진 집계 데이터 중, HAVING절에서 제한 조건을 두어 조건을 만족하는 내용만 출력한다
728x90