PostgreSQL/조인과 집계 데이터
PostgreSQL CUBE 절
DOGvelopers
2019. 11. 9. 17:37
반응형
CUBE 란?
지정된 GROUPING 컬럼의 다차원 소계를 생성하는데 사용된다. 간단한 문법으로 다차원 소계를 출력할 수 있다.
기본문법
- CUBE절에서 다차원 소계를 할 열을 지정한다. (지정한 그룹의 모든 경우에 수에 대한 소계와 총계를 구한다.)
SELECT
C1,C2,C3,
집계함수(C4)
FROM TABLE_NAME
GROUP BY
CUBE (C1, C2, C3);
- 특정 컬럼만 분리,선택하여 CUBE 지정을 할 수 있다.
SELECT
C1,C2,C3,
집계함수(C4)
FROM TABLE_NAME
GROUP BY C1, CUBE (C2, C3);
CUBE 절은 GROUPING SETS 절로 표현하면 총 8개의 소계가 발생합니다.
CUBE(C1,C2,C3)
-> GROUPING SETS (
(C1,C2,C3),
(C1,C2),
(C1,C3),
(C2,C3),
(C1),
(C2),
(C3),
()
)
CUBE절은 인자의 개수가 3개이면 2의3승의 소계가 발생합니다. (2의N승 = 소계의수)
실습
- SALES 테이블의 BRAND,SEGMENT컬럼 기준으로 CUBE 합니다.
SELECT
BRAND,
SEGMENT,
SUM(QUANTITY)
FROM
SALES
GROUP BY
CUBE (BRAND,
SEGMENT)
ORDER BY
BRAND,
SEGMENT;
4가지의 경우의 수로 합계를 합니다.
BRAND,SEGMENT -> BRAND -> SEGMENT -> 전체
- SALES 테이블의 BRADN컬럼은 GROUP BY, SEGMENT컬럼은 CUBE 합니다. (부분 CUBE)
SELECT
BRAND,
SEGMENT,
SUM(QUANTITY)
FROM
SALES
GROUP BY
BRAND,
CUBE (SEGMENT)
ORDER BY
BRAND,
SEGMENT;
BRAND,SEGMENT -> BRAND 의 합계만 조회가 됩니다.
GROUP BY, GROUPING SETS,ROLLUP,CUBE .... 집합함수의 값의 집계를 사용할 때 사용할 수 있는 매우 유용한 함수 입니다.
반응형