2008년 3월 28일.
Posted 2008/05/07 17:46, Filed under: Oracle9i5-13. 평균 급여가 1500이 넘는 직무와 평균 급여를 구하여라.
SQL> ed
file afiedt.buf(이)가 기록되었습니다
1 select job, avg(sal)
2 from emp
3 GROUP BY job
4* having avg(sal) > 1500;
SQL>
SQL> /
JOB AVG(SAL)
--------- ----------
ANALYST 3000
MANAGER 2758.33333
PRESIDENT 5000
5-2. 각 부서별 같은 직무를 갖는 사원의 인원수를 구하여 부서 번호, 직무, 인원수를 출력하여라.
SQL> select deptno, job, count(*)
2 from emp
3 group by deptno, job;
4 /
DEPTNO JOB COUNT(*)
---------- --------- ----------
10 CLERK 1
10 MANAGER 1
10 PRESIDENT 1
20 CLERK 2
20 ANALYST 2
20 MANAGER 1
30 CLERK 1
30 MANAGER 1
30 SALESMAN 4
9 개의 행이 선택되었습니다.
5-1. 10번 부서에 대해 급여의 평균 값, 최대 값, 최소 값, 인원수를 구하여 출력하여라.
SQL> ed
file afiedt.buf(이)가 기록되었습니다
1 select avg(sal), max(sal), min(sal), count(*)
2 from emp
3* where deptno = 10
SQL> /
AVG(SAL) MAX(SAL) MIN(SAL) COUNT(*)
---------- ---------- ---------- ----------
2916.66667 5000 1300 3
4-18. 사원들의 이름, 급여, 커미션을 급여가 적은 것부터 출력하여라.
(단, 커미션이 없는 사원은 ‘No Commission’이라는 말이 출력되게 하여라.)
SQL> select ename, sal, decode(comm,NULL, 'No Commission', comm, comm) "커미션"
2 from emp
3 order by sal;
ENAME SAL 커미션
---------- ---------- ----------------------------------------
SMITH 800 No Commission
JAMES 950 No Commission
ADAMS 1100 No Commission
WARD 1250 500
MARTIN 1250 1400
MILLER 1300 No Commission
TURNER 1500 0
ALLEN 1600 300
CLARK 2450 No Commission
BLAKE 2850 No Commission
JONES 2975 No Commission
SCOTT 3000 No Commission
FORD 3000 No Commission
KING 5000 No Commission
14 개의 행이 선택되었습니다.
4-16. 사원들의 사원 번호와 급여, 커미션, 연봉((comm+sal)*12)을 연봉이 많은 순서로 출력하여라.(단, 커미션이 null인 사원도 0으로 계산하여라.)
1 select empno, sal, nvl(comm,0) "커미션", (nvl(comm, 0)+sal)*12 "연봉"
2 from emp
3* order by (nvl(comm, 0)+12)*sal
SQL> /
EMPNO SAL 커미션 연봉
---------- ---------- ---------- ----------
7369 800 0 9600
7900 950 0 11400
7876 1100 0 13200
7934 1300 0 15600
7844 1500 0 18000
7782 2450 0 29400
7698 2850 0 34200
7566 2975 0 35700
7788 3000 0 36000
7902 3000 0 36000
7839 5000 0 60000
7499 1600 300 22800
7521 1250 500 21000
7654 1250 1400 31800
14 개의 행이 선택되었습니다.
4-7. 입사한 달의 근무 일 수를 계산하여 부서 번호, 이름, 근무 일 수를 출력하여라.
1 select deptno, ename, last_day (hiredate)-hiredate "근무일수"
2* from emp
SQL> /
DEPTNO ENAME 근무일수
---------- ---------- ----------
20 SMITH 14
30 ALLEN 8
30 WARD 6
20 JONES 28
30 MARTIN 2
30 BLAKE 30
10 CLARK 21
20 SCOTT 11
10 KING 13
30 TURNER 22
20 ADAMS 8
30 JAMES 28
20 FORD 28
10 MILLER 8
14 개의 행이 선택되었습니다.
4-4. 급여가 $1,500부터 $3,000 사이의 사원에 대해서만 급여의 15%를 회비로 지불하기로 하였다. 모든 사원의 이름, 급여, 회비(소수이하 2자리까지 반올림)를 출력하여라.
1 select ename, sal, round(sal*0.15,2) HB
2 from emp
3* where sal>=1500 and sal<=3000
SQL> /
ENAME SAL HB
---------- ---------- ----------
ALLEN 1600 240
JONES 2975 446.25
BLAKE 2850 427.5
CLARK 2450 367.5
SCOTT 3000 450
TURNER 1500 225
FORD 3000 450
7 개의 행이 선택되었습니다.
'Oracle9i' 카테고리의 다른 글
| 2008년 4월 2일. (0) | 2008/05/07 |
|---|---|
| 2008년 3월 28일. (0) | 2008/05/07 |
| 2008년 3월 19일. (0) | 2008/05/07 |
| 2008년 3월 12일. (0) | 2008/05/07 |
Trackback URL : http://trustnoone.tistory.com/trackback/669
이올린에 북마크하기
이올린에 추천하기