ROLLUP, CUBE, GROUP SET, GROUPING, LISTAGG

2025. 6. 26. 13:06자격증/SQLD - 취득완료

GROUP SET

-- GROUPING SETS 함수를 사용하여 컬럼별로 그룹으로 묶어 출력하기
-- 지정한 모든 열을 각각 대그룹으로 처리하여 출력
-- CUBE와 같으나 소계가 없음

 

 

RULLUP

-- ROLLUP 함수는 명시한 열에 대해 소그룹별 결과를 출력하고, 마지막에 최종결과를 출력한다.
-- ROLLUP 함수에 명시한 열에 한하여 결과가 출력되며, ROLLUP 함수에는 그룹함수를 지정할 수 없다.
-- ROLLUP 결과와 동일하게 출력되며, 그 아래에 부서와 상관없이 직책별 결과가 함께 출력된다.

CUBE

-- CUBE 함수는 지정한 모든 열에서 가능한 조합의 결과를 모두 출력한다.

 

GROUPING

 

결론적으로 GROUP BY시 해당 그룹에 소속되어 있는지 확인하는 함수이며, 그룹이면 1 - 그렇지 않으면 0 이다.

SELECT DEPARTMENT_ID 부서별
    , JOB_ID 직무별
    , MAX(SALARY) 최대급여
    , SUM(SALARY) 최대값
    , ROUND(AVG(SALARY),0) 최대평균
    , GROUPING(DEPARTMENT_ID)
    , GROUPING(JOB_ID)
FROM EMPLOYEES
GROUP BY CUBE(DEPARTMENT_ID, JOB_ID)
ORDER BY JOB_ID;

결과
110	AC_ACCOUNT	8300	8300	8300	0	0
	AC_ACCOUNT	8300	8300	8300	1	0
110	AC_MGR	12008	12008	12008	0	0
	AC_MGR	12008	12008	12008	1	0
10	AD_ASST	4400	4400	4400	0	0
	AD_ASST	4400	4400	4400	1	0
90	AD_PRES	24000	24000	24000	0	0
	AD_PRES	24000	24000	24000	1	0
90	AD_VP	17000	34000	17000	0	0
	AD_VP	17000	34000	17000	1	0
100	FI_ACCOUNT	9000	39600	7920	0	0
	FI_ACCOUNT	9000	39600	7920	1	0
100	FI_MGR	12008	12008	12008	0	0
	FI_MGR	12008	12008	12008	1	0
40	HR_REP	6500	6500	6500	0	0
	HR_REP	6500	6500	6500	1	0
60	IT_PROG	9000	28800	5760	0	0
	IT_PROG	9000	28800	5760	1	0
20	MK_MAN	13000	13000	13000	0	0
	MK_MAN	13000	13000	13000	1	0
20	MK_REP	6000	6000	6000	0	0
	MK_REP	6000	6000	6000	1	0
70	PR_REP	10000	10000	10000	0	0
	PR_REP	10000	10000	10000	1	0
30	PU_CLERK	3100	13900	2780	0	0
	PU_CLERK	3100	13900	2780	1	0
30	PU_MAN	11000	11000	11000	0	0
	PU_MAN	11000	11000	11000	1	0
80	SA_MAN	14000	61000	12200	0	0
	SA_MAN	14000	61000	12200	1	0
80	SA_REP	11500	243500	8397	0	0
	SA_REP	7000	7000	7000	0	0
	SA_REP	11500	250500	8350	1	0
50	SH_CLERK	4200	64300	3215	0	0
	SH_CLERK	4200	64300	3215	1	0
50	ST_CLERK	3600	55700	2785	0	0
	ST_CLERK	3600	55700	2785	1	0
50	ST_MAN	8200	36400	7280	0	0
	ST_MAN	8200	36400	7280	1	0
10		4400	4400	4400	0	1
20		13000	19000	9500	0	1
30		11000	24900	4150	0	1
40		6500	6500	6500	0	1
50		8200	156400	3476	0	1
60		9000	28800	5760	0	1
70		10000	10000	10000	0	1
80		14000	304500	8956	0	1
90		24000	58000	19333	0	1
100		12008	51608	8601	0	1
110		12008	20308	10154	0	1
		7000	7000	7000	0	1
		24000	691416	6462	1	1

'자격증 > SQLD - 취득완료' 카테고리의 다른 글

[질의]SQLD 합격 후 보수교육  (0) 2025.07.06
인덱스  (0) 2025.06.25
시스템 카탈로그(데이터 사전) with View 공부  (2) 2025.06.24
SQLD 자격증 합격 후기  (0) 2025.06.21
[에러 정리]  (0) 2025.06.20