본문 바로가기

개발하자/ORACLE

사원의 급여 합계 ,평균 및 부서별 직원수 뽑기

SELECT deptno
     , empno
     , DECODE(GROUP_ID(), 0, NVL(ename,'합계'), DECODE(GROUP_ID(), 2, '부서인원', NVL(ename,'평균'))) ename
     , DECODE(GROUP_ID(), 0, SUM(sal), DECODE(GROUP_ID(), 2, COUNT(ENAME) , ROUND(AVG(sal),2))) sal
     , GROUPING(deptno) g1
     , GROUPING(empno) g2
     , GROUPING_ID(empno, ename) g3
     , GROUP_ID() g4
  FROM scott.emp
 GROUP BY deptno, ROLLUP(deptno,DEPTNO,(empno, ename))
  ORDER BY deptno, GROUP_ID(), empno;