개키우는개발자 : )

PostgreSQL CUBE 절 본문

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 -> 전체

실습1

 

- 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 의 합계만 조회가 됩니다.

실습2

GROUP BY, GROUPING SETS,ROLLUP,CUBE .... 집합함수의 값의 집계를 사용할 때 사용할 수 있는 매우 유용한 함수 입니다.

반응형

'PostgreSQL > 조인과 집계 데이터' 카테고리의 다른 글

PostgreSQL 분석함수  (0) 2019.11.09
PostgreSQL 분석 함수 실습 테이블 만들기  (0) 2019.11.09
PostgreSQL ROLL UP절  (0) 2019.11.09
PostgreSQL GROUPING SET 절  (0) 2019.11.05
PostgreSQL HAVING 절  (0) 2019.11.05
Comments