본문 바로가기
데이터베이스

Oracle Having 절

by o테리o 2010. 7. 17.
---- having절 : 그룹함수에 대한 조건절

select deptno, sum(sal)
from EMP
where sum(sal) >= 9000 -- 여기에 where절에 sum(sal)을 넣으면 어느그룹의 것인지 알 수 없다.(문법오류)
group by deptno;

select deptno, sum(sal)
from EMP
group by deptno
having sum(sal) >= 9000;  -- 그룹함수 조건인 having절을 넣어야 오류없이 실행된다.

------------- 다음 문장을 비교하였을때 두문장은 결과는 같으나 아래쪽이 더 빠르게 실행된다.
------------- 일반컬럼은 having절에 쓰는걸 권장하지 않는다. (그룹함수만 쓰자.)

select job, sum(sal)     -- 이문장은 job의 모든 행을 메모리에 로드시키고 실행한다.
from EMP
group by job
having job in ('MANAGER','SALESMAN');

'데이터베이스' 카테고리의 다른 글

Cassandra db 로컬설치  (0) 2011.05.28
MSSQL 2005 원격접속 허용  (0) 2010.12.08
SELECT * INTO와 INSERT INTO SELECT..의 차이점  (0) 2010.07.17