정미나닷컴

[Oracle] 오라클 HAVING 본문

IT

[Oracle] 오라클 HAVING

정미나 2013. 2. 4. 14:21

HAVING절
- GROUP BY 절과 같이 사용되어 SELECT 문장에서 집계 함수를 사용한 조건을 명시하는 절,

집계 함수용 WHERE 절, 항상 GROUP BY 절과 같이 사용되어야 한다.

 

SELECT department_id, COUNT(*)
  FROM EMPLOYEES
 WHERE department_id IS NOT NULL

 GROUP BY department_id  

HAVING COUNT(*) <= 5
 ORDER BY department_id;

 


* SQL 문장의 실행순서
: WHERE -> GROUP BY -> HAVING

 

+ SELECT 문장 실행 순서

  SELECT       -- ⑤
   FROM       -- ①
  WHERE      -- ②
  GROUP BY -- ③
 HAVING     -- ④
  ORDER BY -- ⑥

=> SELECT 절에서 정의한 alias는 ORDER BY 절에서만 사용 가능

 

(일반조건을 HAVING절에 명시할 수도 있지만 성능적인 측면에서 볼 때 집계 함수가 포함된 조건은 HAVING절에, 일반조건은 WHERE 절에 명시하는 것이 바람직하다.)