🖥️ IT, 컴퓨터/🏁 SQL・빅쿼리

[SQL] HAVING 절이란?

김 홍시 2024. 11. 24.
반응형

SQL에서 HAVING 절은 그룹화된 데이터에 대해 조건을 적용할 때 사용됩니다. 일반적으로 GROUP BY와 함께 사용되며, 그룹화된 데이터의 집계 결과에 조건을 걸기 위해 활용됩니다.

주요 특징:

  • WHERE 절은 개별 행(row)에 조건을 적용하지만, HAVING 절은 그룹화된 데이터에 조건을 적용합니다.
  • 집계 함수(SUM, AVG, COUNT, MAX, MIN 등)와 함께 자주 사용됩니다.

기본 구조:

SELECT 컬럼1, 집계함수(컬럼2)
FROM 테이블
GROUP BY 컬럼1
HAVING 집계함수(컬럼2) 조건;

예시

1. 직원 테이블에서 부서별 평균 급여가 5000 이상인 부서만 조회:

SELECT 부서, AVG(급여) AS 평균급여
FROM 직원
GROUP BY 부서
HAVING AVG(급여) >= 5000;

2. 상품 테이블에서 판매량이 100개 이상인 상품 그룹 조회:

SELECT 상품종류, SUM(판매량) AS 총판매량
FROM 상품
GROUP BY 상품종류
HAVING SUM(판매량) >= 100;

WHERE와 HAVING의 차이:

  • WHERE: 그룹화 전에 조건을 걸 때 사용.
  • HAVING: 그룹화된 결과에 조건을 걸 때 사용.

예시: WHERE와 HAVING 비교

-- WHERE를 사용하는 경우 (개별 데이터 필터링)
SELECT 부서, 급여
FROM 직원
WHERE 급여 > 3000;

-- HAVING을 사용하는 경우 (집계 결과 필터링)
SELECT 부서, SUM(급여) AS 총급여
FROM 직원
GROUP BY 부서
HAVING SUM(급여) > 10000;

이처럼 HAVING은 그룹화 후 데이터를 제한하고, WHERE은 그룹화 전에 데이터를 제한하는 데 적합합니다.

반응형

댓글