본문 바로가기
스터디/SQL

[정리노트] SQLD 2024년 개정판 - HAVING

by 견습생L 2024. 8. 21.

 

[정리노트] 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;

 

반응형