본문 바로가기
My Image
전공지식/DataBase

[SQLD] 제2장 - 그룹함수(CUBE, ROLLUP, GROUPING SETS)_3

by Lim-Ky 2018. 5. 20.
반응형




GROUPING SETS 함수


지난시간 : 


2018/05/17 - [전공지식/DataBase] - [SQLD] 제2장 - 그룹함수(CUBE, ROLLUP, GROUPING SETS)_1

2018/05/18 - [전공지식/DataBase] - [SQLD] 제2장 - 그룹함수(CUBE, ROLLUP, GROUPING SETS)_2


이번시간은 3번째 시간으로 GROUPING SETS 함수에 대해 알아보겠습니다.


GROUPING SETS 를 이용해 더욱 다양한 소계 집합을 만들수 있습니다. 

GROUP BY SQL를 여러 번 반복하지 않아도 원하는 결과를 쉽게 얻을 수 있습니다.


GROUPING SETS 함수는 쉽게 GROUP BY 한 SQL 들을 UNION ALL 해서 보여주는 결과와 같습니다.


먼저 GROUP BY SQL 과 UNION ALL을 쓰는 경우를 보고, 이를 GROUPING SETS 함수를 이용하여 바꿔보겠습니다.


[예제1] 일반 GROUP BY SQL를 이용하여 부서별, 직업별 인원수와 연봉 합계를 구하여라.



-> DNAME 그룹핑 한 결과와 JOB을 그룹핑 한 결과를 합친 결과가 나옵니다.






이제 위 SQL를GROUPING SETS 함수를 이용해 바꿔보겠습니다.


-> GROUPING SETS(인수1, 인수2) 즉, 인수1 그룹핑 결과  + 인수2 그룹핑 결과를 합친 결과입니다.


훨씬 간단하게 같은 결과를 출력할 수 있습니다. 


-> 참고로!! GROUPING SETS(인수1, 인수2) 와 GROUPING SETS(인수2, 인수1)의 결과를 서로 같습니다.


즉, GROUPING SETS 인수들은 평등한 관계이므로 인수의 순서가 바뀌어도 결과는 같습니다. 








이번에는 괄호를 묶어서 좀 더 다양한 집계를 해보겠습니다.


[예제1] 부서-직업-매니저 별, 부서-직업 별, 직업-매니저 별 집계를 GROUPING SETS 함수를 이용해서 구해라.


-> 괄호를 기준으로, 부서-직업-매니저 별, 부서-직업 별, 직업-매니저 별 집계결과를 얻을 수 있습니다.







이번 시간을 끝으로, 그룹함수(CUBE, ROLLUP, GROUPING SETS)에 대해 알아보았습니다.


수고하셨습니다. ㅎㅎ











반응형

댓글