1.. EMP테이블 에서 사원들은 입사일(HIREDATE)을 기준으로 3개월이 지난 후 첫 월요일에 정직원이 됩니다. 사원들이 정직원원이 되는 날짜(R_JOB)를 YYYY-MM-DD 형식으로 출력해주세요.
단, 추가수당(COMM)이 없는 사원의 추가수당은 'N/A'로 출력하세요.
select ename,hiredate,to_char(next_day(ADD_MONTHS(LAST_DAY(hiredate), 3),'월요일'),'yy-mm-dd') ,nvl(to_char(comm),'N/A') from emp ;
2.emp 테이블을 이용하여 부서번호, 평균급여 , 최고급여, 최저급여, 사원수를 출력하시오
단 평균급여는 소숫점을 제외하고 각 부서번호 별로 출력하시오
select deptno, trunc(avg(sal)),max(sal),min(sal) ,count(*) from emp group by deptno;
3.같은 직책에 종사하는 직원이 3명이상인 직책과 인원수를 출력하시오
select job, count(*) from emp group by job having count(*)>=3;
4. 사원들의 입사 년도를 기준으로 몇명이 입사했는지 출력하시오
>>select to_char(hiredate,'YY') as 입사년도 , count(*) from emp group by to_char(hiredate,'YY'); select
>>substr(hiredate,1,3) as 입사년도 , count(*) from emp group by substr(hiredate,1,3);
5. 각 부서의 입사 연도별 사원수, 최고급여, 급여의합, 평균급여를 출력하고 그룹별 소계와 총계를 출력하시오
select deptno, to_char(hiredate,'yy')as 년도 , count(*),max(sal),sum(sal),avg(sal)
from emp
group by rollup(deptno,to_char(hiredate,'yy'));
6. 각 부서별 평균 급여, 최대 급여, 최소급여를 출력하시오
select deptno, trunc(avg(sal)), max(sal), min(sal) from emp group by deptno;
7. 10번 부서에서 근무하는 사원 중 30번 부서에는 존재하지 않는 직책을 가진 사원들의
사원정보, 부서 정보를 출력하시오
방법1
select * from emp e, dept d where e.deptno = d.deptno and
ename in (select ename from emp where deptno =10 and job not in (select job from emp where deptno =30));
방법2
select * from emp e, dept d where e.deptno = d.deptno and
e.deptno=10 and job not in (select job from emp where deptno =30);
8.테이블 emp77 생성 하고 테이블에 50번 부서를 생성하시오 .
create table emp77 as select deptno, ename, job, sal from emp;
insert into emp77 values(50,'sara','ddr',2222);
9. 가장 많은 월급을 받는 사원을 50번 부서로 이동시키시오
update emp77 set deptno=50 where sal>=(select max(sal) from emp);
10. 10번 부서의 사원들 중 가장 적은 급여의 사람을 급여를 10% 인상하고 50번 부서로 옮기시오
update emp77 set sal=sal*1.1 , deptno=50 where sal<=(select min(sal) from emp);
11. emp77테이블에서 급여 등급이 5인 사원을 삭제하시오.
delete from emp77
where ename
in(select e.ename from emp e, salgrade s where e.sal between losal and hisal and s.grade=5);
'DB > Oracle' 카테고리의 다른 글
SQL의 종류 - DML, DDL,DCL,TCL (0) | 2022.09.01 |
---|---|
오라클 - NVL , NVL2 (0) | 2022.08.31 |
그룹함수 - ROLLUP (0) | 2022.08.31 |
오라클 연습 문제(1) (0) | 2022.08.29 |
# 1 스키마와 사용자 (0) | 2022.08.21 |