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)에 대해 알아보았습니다.
수고하셨습니다. ㅎㅎ
'전공지식 > DataBase' 카테고리의 다른 글
[SQLD] 제2장 - DB계층형 질의와 셀프조인(Hierarchical Query & Self Join)_2 (1) | 2018.06.06 |
---|---|
[SQLD] 제2장 - DB계층형 질의와 셀프조인(Hierarchical Query & Self Join)_1 (0) | 2018.06.03 |
[SQLD] 제2장 - 그룹함수(CUBE, ROLLUP, GROUPING SETS)_2 (0) | 2018.05.18 |
[SQLD] 제2장 - 그룹함수(CUBE, ROLLUP, GROUPING SETS)_1 (3) | 2018.05.17 |
[SQLD] 제1장 - 모델링, 데이터 모델링 (0) | 2018.05.07 |
댓글