--1. 사원테이블에서 부서별 최대 월급을 출력하라.
select deptno,max(sal) as [최대월급]
from emp
group by deptno
--2. 사원테이블에서 직위별 최소 월급을 구하되 직위가
-- CLERK인 것만 출력하라.
select job,min(sal) as [최소월급]
from emp
where job = 'clerk'
group by job
--3. 커미션이 책정된 사원은 모두 몇 명인가?
select count(comm)
from emp
--4. 직위가 'SALESMAN'이고 월급이 1000이상인 사원의
-- 이름과 월급을 출력하라.
select ename,sal
from emp
where job = 'SALESMAN' and SAL >= 1000
--5. 부서별 평균월급을 출력하되, 평균월급이 2000보다
-- 큰 부서의 부서번호와 평균월급을 출력하라.
select DEPTNO ,avg(sal) as [평균월급]
from emp
group by DEPTNO
having avg(SAL) >= 2000
--6. 사원테이블에서 커미션을 가장 많이 받는 사원 2명을
-- 출력하되 랭킹이 중복될 경우 동률처리를 하여 출력하라.
select top 2 with ties ename, comm
from emp
order by comm desc
--7. 직위가 MANAGER인 사원을 뽑는데 월급이 높은 사람
-- 순으로 이름, 직위, 월급을 출력하라.
select ename,job,sal
from emp
where job = 'manager'
order by sal desc
--8. 각 직위별로 총월급을 출력하되 월급이 낮은 순으로
-- 출력하라.
select job, SUM(sal) as [합계]
from emp
group by job
order by sum(sal)
--9. 직위별 총월급을 출력하되, 직위가 'MANAGER'인
-- 사원들은 제외하라. 그리고 그 총월급이 5000보다
-- 큰 직위와 총월급만 출력하라.
select job, sum(SAL) as [합계]
from emp
where job != 'manager'
group by job
having sum(SAL) > 5000
--10. 직위별 최대월급을 출력하되, 직위가 'CLERK'인
-- 사원들은 제외하라. 그리고 그 최대월급이 2000 이상인
-- 직위와 최대월급을 최대 월급이 높은 순으로 정렬하여
-- 출력하라.
select job,max(sal) as[최대월급]
from emp
where job != 'clerk'
group by job
having max(sal) > 2000
order by max(sal) desc
--11. WITH ROLLUP 구문을 이용하여 직위별 사원의 이름과
-- 월급, 그리고 직위별 월급의 합을 구하라.
select sal, job, ename , sum(sal)
from emp
group by job,ename,sal with rollup
'개발 > SQL' 카테고리의 다른 글
MS-SQL 기본문제 9문 (0) | 2011.05.18 |
---|---|
MS-SQL 정렬문법 [order by , top ] (0) | 2011.05.18 |
MS-SQL 문법 [ DATE ] (0) | 2011.05.18 |
MS-SQL 숫자,텍스트,문법 [ in , like , Math ] (0) | 2011.05.18 |
기초 문법 [ pivot , ROW_NUMBER , Rank , DENSE_RANK , NTILE ] (0) | 2011.05.18 |