본문 바로가기

Database

11. 그룹함수: ROLLUP/CUBE/GROUPING SET

그룹함수 

GROUP BY: 특정 칼럼을 기준으로 그룹화하여 계산하고 싶을 때 사용하는 절.

예제로 사용할 테이블

1. ROLLUP

GROUP BY로 묶은 각각의 그룹 합계와 전체 합계를 모두 구할 수 있음 → 순서가 바뀌면 결과도 바뀜

SELECT p_id, month, SUM(sales) AS Total
FROM sales_month
GROUP BY ROLLUP(p_id, month);  or (month, p_id);

▶ GROUP BY로 묶은 컬럼의 순서가 달라지면 조회 결과도 달라진다. → 모든 컬럼의 합계가 아닌 첫번째 컬럼의 합만 구한다.

 

2. CUBE

GROUP BY 항목 간 다차원적 소계 계산(모든 그룹 케이스를 계산) → 순서가 달라져도 결과는 달라지지 않는다.

SELECT month, p_id, SUM(sales) AS Total
FROM sales_month
GROUP BY CUBE(p_id, month);

▶ GROUP BY절에 묶인 모든 컬럼의 합계를 계산한다. → 컬럼의 순서가 달라져도 결과는 똑같다

 

3. GROUPING SETS

특정 항목에 대한 소계 계산

SELECT month, p_id, SUM(sales) AS Total
FROM sales_month
GROUP BY GROUPING SETS(p_id, month);

'Database' 카테고리의 다른 글

13. PL/SQL - 제어문  (0) 2023.05.04
12. PL/SQL - SQL*Plus  (0) 2023.05.04
10. 시퀀스/뷰  (0) 2023.05.04
9. 집합연산자  (0) 2023.05.04
8. 서브쿼리  (0) 2023.05.04