◈ 연 습 문 제 ◈
1. EMP 테이블에서 인원수,최대 급여,최소
급여,급여의 합을 계산하여 출력하는 SELECT 문장을 작성하여라.
select COUNT(ename) as 인원수
,MAX(sal) as 최대급여
,MIN(sal) as 최소급여
,SUM(sal) as 급여합
from emp;
è 그룹함수 이용하여, 출력
2. EMP 테이블에서 각 업무별로 최대 급여,최소 급여,급여의 합을 출력하는 SELECT 문장을 작성하여라.
select job as 업무
,MAX(sal) as 최대급여
,MIN(sal) as 최소급여
,SUM(sal) as 급여합
from emp
group by job;
è Groupby
이용하여, 직업별로 묶어서 출력
3. EMP 테이블에서 업무별 인원수를 구하여 출력하는 SELECT 문장을 작성하여라.
select job as 업무, count(ename) as 인원수
from emp
group by job;
è Groupby
한 뒤
카운트를 이용하여, 업무별로 구함
4. EMP 테이블에서 최고 급여와 최소 급여의 차이는 얼마인가 출력하는 SELECT 문장을
작성하여라.
select max(sal) - min(sal) as 급여차
from emp;
è Max와 min 구해서 차를 구함
5. EMP 테이블에서 아래의 결과를 출력하는 SELECT 문장을 작성하여라.
H_YEAR COUNT(*)
MIN(SAL) MAX(SAL) AVG(SAL)
SUM(SAL)
------
--------- --------- --------- --------- ---------
80 1 800 800 800 800
81 10 950 5000
2282.5 22825
82 2 1300 3000 2150 4300
83 1 1100 1100 1100 1100
|
select trunc(hiredate, 'YY') AS H_YEAR, COUNT(*), MIN(SAL), MAX(SAL), AVG(SAL), SUM(SAL)
from emp
group by trunc(hiredate, 'YY');
group by trunc(hiredate, 'YY');
è Groupby를 trunc로 짤라서 모으고, 셀렉트문에서 출력.
6. EMP 테이블에서 아래의 결과를 출력하는 SELECT 문장을 작성하여라.
TOTAL
1980 1981 1982 1983
---------
--------- --------- --------- ---------
14 1 10 2 1
|
select count(*) as total
,sum(decode(to_char(hiredate, 'YYYY'), 1980,1,0)) as "1980"
,sum(decode(to_char(hiredate, 'YYYY'), 1981,1,0)) as "1981"
,sum(decode(to_char(hiredate, 'YYYY'), 1982,1,0)) as "1982"
,sum(decode(to_char(hiredate, 'YYYY'), 1983,1,0)) as "1983"
from emp;
è 디코드문으로 년도별인것만 골라낸
뒤 sum을 해줘서 몇 명인지 구함
7. EMP 테이블에서 아래의 결과를 출력하는 SELECT 문장을 작성하여라.
JOB Deptno 10 Deptno 20 Deptno 30 Total
---------
--------- --------- --------- ---------
ANALYST 6000 6000
CLERK 1300 1900 950 4150
MANAGER 2450 2975 2850 8275
PRESIDENT 5000 5000
SALESMAN 5600 5600
|
select job
,sum(decode(deptno, 10, sal)) as Deptno10
,sum(decode(deptno, 20, sal)) as Deptno20
,sum(decode(deptno, 30, sal)) as Deptno30
,sum(sal) as total
from emp
group by job
order by job;
order by job;
è 디코드문을 이용해서 부서번호가 10,20,30인사람별로 급여 합을 구함
댓글 없음:
댓글 쓰기