DB/OracleSQL
복습문제 - 그룹행 함수
do-oni
2021. 7. 12. 22:56
Q. 4-1 사원 테이블에서 최대 월급을 출력하시오select max(sal) from emp;
Q. 4-2 직무가 SALESMAN 인 사원들 중에서 최대월급을 출력하시오select max(sal) from emp where job = 'SALESMAN';
Q. 4-3 부서번호, 부서번호별 최대월급을 출력하는데 부서번호별 최대월급이 높은것 부터 출력하시오select deptno, max(sal) from emp group by deptno order by sum(sal) desc;
Q. 4-4 위의 결과에서 부서번호 20번은 제외하고 출력하시오select deptno, max(sal) from emp where deptno not like '%20%' group by deptno order by sum(sal) desc;
Q. 4-5 커미션의 평균값을 출력하시오select avg(comm) from emp;
Q. 4-6 위의 결과를 다시 출력하는데 전체 사원수로 나누게 하시오select sum(nvl(comm,0))/14 from emp;
Q. 4-7 직무, 직무별 토탈월급을 출력하는데 직무가 SALESMAN 인 사원들을 제외하고 출력하 고 직무별 토탈월급이 높은것부터 출력하는데 직무별 토탈월급을 출력할때에 천단위 를 부여해서 출력하시오select job, to_char(sum(sal),'999,999') from emp where job != 'SALESMAN' group by job order by 2 desc;
Q. 4-8 부서번호, 부서번호별 토탈월급을 출력하시오select deptno, sum(sal) from emp group by deptno;
Q. 4-9 위의 결과를 가로로 출력하시오 (부서번호를 모두 안다고 가정)select sum(decode(deptno,10,sal)) as "10" ,sum(decode(deptno,20,sal)) as "20" ,sum(decode(deptno,30,sal)) as "30" from emp;
Q. 4-10 직무, 직무별 토탈월급을 출력하시오select job, sum(sal) from emp group by job;
Q. 4-11 위의 결과를 다시 출력하는데 직무별 토탈월급이 5000 이상인것만 출력하시오select job, sum(sal) from emp group by job having sum(sal) >= 5000;
Q. 4-12 직무, 직무별 토탈월급을 출력하는데 직무가 SALESMAN 은 제외하고 출력하고 직무 별 토탈월급이 4000 이상인것만 출력하고 직무별 토탈월급이 높은것부터 출력하시오select job, sum(sal) from emp where job != 'SALESMAN' group by job having sum(sal) >= 4000 order by sum(sal) desc;
Q. 4-13 사원 테이블의 전체 건수를 확인하시오select count(*) from emp;
Q. 4-14 직무, 직무별 인원수를 출력하시오select job, count(*) from emp group by job;
Q. 4-15 직무, 직무별 평균월급을 출력하시오select job, round(avg(sal)) from emp group by job;
Q. 4-16 위의 결과중에 최대값을 출력하시오select max(round(avg(sal))) from emp group by job;
Q. 4-17 직무, 부서번호, 직무별 부서번호별 토탈월급을 출력하시오select job, sum(decode(deptno,10,sal)) as "10" ,sum(decode(deptno,20,sal)) as "20" ,sum(decode(deptno,30,sal)) as "30" from emp group by job;
Q. 4-18 입사한 년도(4자리), 입사한 년도별 토탈월급을 출력하시오select to_char(hiredate, 'rrrr'), sum(sal) from emp group by to_char(hiredate,'rrrr');
Q. 4-19 위의 결과를 가로로 출력하시오select sum(decode(to_char(hiredate,'rrrr'),'1980',sal)) "1980", sum(decode(to_char(hiredate,'rrrr'),'1981',sal)) "1981", sum(decode(to_char(hiredate,'rrrr'),'1982',sal)) "1982", sum(decode(to_char(hiredate,'rrrr'),'1983',sal)) "1983" from emp;