DataBase/구루비SQL Quiz

[Vertica]사원의 급여 합계 및 평균

cororo2 2023. 8. 28. 13:04

출처 : http://www.gurubee.net/lecture/2191

 

[퀴즈] 사원의 급여 합계 및 평균을 보여주는 쿼리

  퀴즈로 배워보는 SQL, 그 두 번째 시간은 그룹 바이(GROUP BY)와 롤업(ROLLUP)의 기본원리에 대한 이해와 이를 이용해 문제를 해결하는 방법에 대해..

www.gurubee.net

 

위의 그림과 같은 query 결과 도출

 

SELECT DEPTNO,EMPNO,
    CASE WHEN ENAME IS NULL AND GROUPING(X)=0 THEN '합계'
        WHEN ENAME IS NULL AND GROUPING(X)=1 THEN '평균'
        ELSE ENAME END ENAME,
    CASE WHEN ENAME IS NULL AND GROUPING(X)=1 THEN ROUND(AVG(SAL),2) ELSE SUM(SAL)END SAL
FROM (SELECT DEPTNO,EMPNO,ENAME,0 X, SAL FROM EMP)a
GROUP BY GROUPING SETS(
    (DEPTNO,EMPNO,ENAME,X),
    (DEPTNO,X),
    (DEPTNO)
)
ORDER BY DEPTNO,empno DESC;