---- all 함수 : 해당컬럼을 모두 비교해라. (and와 같다.)
--///// 하위 문법은 Oracle DB 에서는 잘되나, MS-SQL은 문법오류가 생긴다. 그래서 all 함수를 사용한다.
select deptno, sum(sal)
from EMP
group by deptno
having sum(sal) = (select max(sum(sal)) -- 그룹함수안에 그룹함수는 한번만 사용가능하다.
                   from EMP
                   group by deptno);
                  
select deptno, sum(sal)
from EMP
group by deptno
having sum(sal) >= all(select sum(sal) -- 그룹함수는 null값이 존재치 않기때문에
          from EMP            -- where 컬럼 is not null을 사용하지 않아도 된다.
       group by deptno);
-------- 연습문제 : sal가 최고인 사람의 사원명과 직종과 직급과 급여를 나타내시오.                  
select ename, job, sal
from emp
where sal = (select max(sal) from emp);

select ename, job, sal
from EMP
where sal >= all(select sal from emp); -- sal을 비교해서 sal과 같거나 큰것을 찾는다.
-------- 연습문제 : comm이 최고인 사람의 사원명과 직종과 직급과 급여를 나타내시오.                  
select ename, job, comm
from emp
where comm = (select max(comm) from emp);

select ename, job, comm
from EMP
where comm >= all(select comm from emp); -- 해당 컬럼에 null이 존재하면 오류가 나온다.

select ename, job, comm
from EMP
where comm >= all(select comm from emp where comm is not null);

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

Oracle cross join, natural join, using 절  (0) 2009.03.14
Oracle 다중 테이블로부터의 데이타 검색  (0) 2009.03.14
Oracle rollup, cube 함수  (0) 2009.03.14
Oracle Having 절  (0) 2009.03.14
Oracle Group by 절  (0) 2009.03.14
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