[정리노트] SQLD 2024년 개정판 - HAVING
HAVING
- 그룹 함수 결과를 조건으로 사용할 때 사용하는 절
- WHERE 절을 사용하여 그룹을 제한할 수 없으므로 HAVING 절에 전달
- HAVING 절이 GROUP BY 절 앞에 올 수는 있지만 뒤에 쓰는 것을 권장
- 내부적 연산 순서가 SELECT 절보다 먼저이므로 SELECT 절에서 선언된 Alias(AS) 사용 불가
ex) 그룹 함수 조건을 WHERE절에 전달하는 경우 발생한 에러

ex) 그룹 함수 조건 HAVING 절에 전달
SELECT DEPARTMENT_ID,
SUM(SALARY)
FROM EMPLOYEES
GROUP BY DEPARTMENT_ID
HAVING SUM(SALARY) > 2000;

ex) WHERE 절과 HAVING 절 동시 사용
→ 순서상 WHERE 절을 먼저 수행, 원하는 데이터만 필터링 한 후 GROUP BY에 의해 그룹 연산을 수행한 뒤 HAVING 절에서 만족하는 데이터만 선택하여 출력함
SELECT DEPARTMENT_ID,
SUM(SALARY)
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (10,30,40,110)
HAVING SUM(SALARY) > 20000
GROUP BY DEPARTMENT_ID;

반응형
'스터디 > SQL' 카테고리의 다른 글
[정리노트] SQLD 2024년 개정판 - JOIN (조인) (4) | 2024.08.21 |
---|---|
[정리노트] SQLD 2024년 개정판 - ORDER BY (4) | 2024.08.21 |
[정리노트] SQLD 개정판 - GROUP BY (4) | 2024.08.21 |
[정리노트] SQLD 2024년 개정판, WHERE (55) | 2024.08.20 |
[정리노트] SQLD 2024년 개정판 - 함수 (49) | 2024.08.20 |