출처 : 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;

'DataBase > 구루비SQL Quiz' 카테고리의 다른 글
| [Oracle] 경우의 수 구하기 (0) | 2024.04.16 |
|---|---|
| [PostgreSQL]IP목록 정렬 (0) | 2023.09.21 |
| [PostgreSQL]연속된 날짜를 하나의 그룹으로 표현 (0) | 2023.09.21 |
| [PostgreSQL]분석함수 사용하지 않고 rank 쿼리 사용 (0) | 2023.08.28 |
| [PostgreSQL]스터디가입현황 (0) | 2023.08.24 |