Kong Eunho

3.5 GROUP BY, HAVING

2025년 08월 05일 19시
카테고리 - TIL, sqld, 3_SQL_기본


3.5.1 GROUP BY절

GROUP BY : GROUP BY 뒤에 오는 칼럼의 각 값별로 데이터를 그룹핑한다. 매우 부하가 높은 연산이므로 사용 전에 WHERE을 통해 조건 필터링을 수행하는 것이 좋다.

SELECT ID, SUM(NUM) AS NUMS FROM TEST GROUP BY ID;
TEST 테이블에서 ID별로 그룹핑을 수행한 뒤 ID별 NUM의 합계를 조회.

3.5.2 집계함수

집계함수 : GROUP BY를 통해 생성된 그룹에 대하여 통계값을 계산하는 함수. GROUP BY 없이 사용한다면 전체 행을 하나의 그룹으로 본다.

함수 설명
COUNT 칼럼에서 값이 존재하는 행의 개수를 반환.
SUM 칼럼의 합을 반환.
AVG 칼럼의 평균을 반환.
MIN 칼럼의 최솟값을 반환.
MAX 칼럼의 최댓값을 반환.


3.5.3 HAVING절

HAVING : 필터링할 조건을 명시하는 구문. WHERE절과 달리 집계함수를 사용할 수 있다. 즉 GROUP BY 연산이 끝난 결과에 대한 필터링을 수행한다.

SELECT ID FROM TEST GROUP BY ID HAVING COUNT(*) = 2;
TEST 테이블에서 ID별로 그룹핑을 수행한 뒤 ID별로 개수가 2개인 ID를 조회.

◀ 이전 글 TIL, sqld, 3_SQL_기본
3.4 WHERE
2025-08-05
목록으로 다음 글 ▶ TIL, sqld, 3_SQL_기본
3.6 ORDER BY
2025-08-05