---- 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');

'Program... > Oracle' 카테고리의 다른 글

Oracle All 함수  (0) 2009.03.14
Oracle rollup, cube 함수  (0) 2009.03.14
Oracle Group by 절  (0) 2009.03.14
Oracle 단일행 함수와 그룹함수의 차이점  (0) 2009.03.14
Oracle rank 함수  (0) 2009.03.13
Posted by Duritz

공지사항

Yesterday
Today
Total
12-05 02:20

달력

 « |  » 2024.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31