이 글은 SQLD를 공부하며 GROUP BY
구에 사용할 수 있는 그룹 함수(Group Function)에 대해 정리한 글이다.
GROUP BY에 대한 내용은 아래 글에서 확인할 수 있다.
SQLD | SQL 기본 - GROUP 연산과 SELECT문 실행 순서
SQLD | SQL 기본 - GROUP 연산과 SELECT문 실행 순서
이 글은 SQLD를 공부하며 GROUP BY문과 SELECT문의 실행 순서에 대한 내용을 정리한 글이다. GROUP BY문 GROUP BY문 사용 GROUP BY문은 테이블에서 소규모 행을 그룹화하여 합계, 평균, 최댓값, 최솟값 등을
luna-devstory.tistory.com
ROLLUP
ROLLUP
은GROUP BY
의 칼럼에 대해서 Subtotal을 만들어 줌ROLLUP
을 할 때GROUP BY
구에 칼럼이 두 개 이상 오면 순서에 따라 결과가 달라짐
SELECT DECODE(DEPTNO, NULL, 'SUM', DEPTNO), SUM(AGE)
FROM STD
GROUP BY ROLLUP(DEPTNO);
DECODE
문은 전체 합계를 조회할 때, 합계 옆에 문자(SUM)을 출력하기 위한 용도로 사용DECODE
문을 사용해서 DEPTNO의 값이 NULL이면 SUM을 출력하고, NULL이 아니라면 DEPTNO의 값을 출력하도록 함
- ROLLUP으로 실행되는 칼럼이 여러 개라면, 칼럼 별로 Subtotal을 만들어 줌
GROUPING 함수
GROUPING
함수는ROLLUP
,CUBE
,GROUPING SETS
에서 생성되는 합계값을 구분하기 위해 만들어진 함수- 소계, 합계 등이 계산되면 GROUPING 함수는 1을 반환하고, 계산되지 않으면 0을 반환
GROUPING
의 반환값을 통해DECADE
혹은CASE
문으로 식별하여SELECT
문으로 소계 및 합계를 구분하는 것
SELECT DEPTNO, GROUPING(DEPTNO),
GENDER, GROUPING(GENDER),
SUM(AGE)
FROM STD
GROUP BY ROLLUP(DEPTNO, GENDER);
GROUPING SETS 함수
GROUPING SETS
함수는GROUP BY
에 나오는 칼럼의 순서와 관계없이 다양한 소계를 만들 수 있음GROUPING SETS
함수는GROUP BY
에 나오는 칼럼의 순서와 관계없이 개별적으로 모두 처리함
SELECT DEPTNO, GENDER, SUM(AGE)
FROM STD
GROUP BY GROUPING SETS(DEPTNO, GENDER);
GROUPING SETS
함수로 DEPTNO와 GENDER를 조회한 결과, DEPTNO 합계와 GENDER 합계가 개별적으로 조회됨 → 서로 관계가 없다는 의미
CUBE 함수
CUBE
는CUBE
함수에 제시한 칼럼에 대해서 결합 가능한 모든 집계를 계산- 학과(DEPTNO)와 성별(GENDER)을
CUDE
에 넣고 실행하면, 학과별 합계, 성별별 합계, 학과별 성별별 합계가 모두 조회됨 - CUBE에 넘겨준 칼럼으로 조합할 수 있는 모든 경우의 수가 조회됨
- 학과(DEPTNO)와 성별(GENDER)을
- 다차원 집계를 제공하여 다양하게 데이터를 분석할 수 있도록 함
Reference
1. 2024 이기적 SQL 개발자 이론서 + 기출문제 / https://product.kyobobook.co.kr/detail/S000212055970
2024 이기적 SQL 개발자 이론서+기출문제 | 임호진 - 교보문고
2024 이기적 SQL 개발자 이론서+기출문제 | 본 도서는 SQL 개발자 시험 경향을 분석하여 수험생들이 혼자서도 학습할 수 있도록 한 완벽 대비서로서, 시행처인 한국데이터산업진흥원에서 공개한 202
product.kyobobook.co.kr
'Data Science > SQL' 카테고리의 다른 글
SQLD | SQL 활용 - 조인(JOIN) (0) | 2024.03.03 |
---|---|
SQLD | SQL 활용 - 서브쿼리(Subquery) (0) | 2024.03.02 |
SQLD | SQL 기본 - DECODE문, CASE문, 그리고 WITH구문 (0) | 2024.03.02 |
SQLD | SQL 기본 - GROUP 연산과 SELECT문 실행 순서 (0) | 2024.03.02 |
SQLD | SQL 기본 - NULL의 특징과 NULL 값 조회 (2) | 2024.03.01 |