개키우는개발자 : )

PostgreSQL ROLL UP절 본문

PostgreSQL/조인과 집계 데이터

PostgreSQL ROLL UP절

DOGvelopers 2019. 11. 9. 16:18
반응형

ROLL UP 이란?

지정된 GROUPING 컬럼의 소계를 생성하는데 사용된다. 간단한 문법으로 다양한 소계를 출력합니다.

 

기본문법

 

 

소계 「명사」 : 전체가 아닌 어느 한 부분만을 셈한 합계.

 

- 소계를 생성할 컬럼을 지정한 후 순서에 따라 결과값이 달라질 수 있다. (제일 앞에 놓인 것에 소계를 구함)

SELECT
	C1,C2,C3,
    집계함수(C4)
FROM TABLE_NAME
GROUP BY
ROLLUP (C1,C2,C3);

- 특정 컬럼을 제외한 부분적,선택적 ROLLUP도 가능 합니다.

SELECT 
	C1,C2,C3,
    집계함수(C4)
FROM TABLE_NAME
GROUP BY C1
ROLLUP (C2, C3);

 

실습

 

- SALES 테이블의 BRAND,SEGMENT 컬럼 기준으로 ROLL UP을 합니다.

SELECT
	BRAND,
	SEGMENT,
	SUM(QUANTITY)
FROM
	SALES
GROUP BY
	ROLLUP (BRAND,
	SEGMENT)
ORDER BY
	BRAND,
	SEGMENT

BRAND,SEGMENT를 기준으로 합계 BRAND 기준으로 합계, 전체를 합계 하여 조회합니다. (첫번째 컬럼의 기준)

실습1

- SALES 테이블의 SEGMENT 기준으로 GROUP BY합니다. 그 후 BRAND 컬럼 기준으로 ROLL UP 합니다.

SELECT
	BRAND,
	SEGMENT,
	SUM(QUANTITY)
FROM
	SALES
GROUP BY
	SEGMENT, ROLLUP (BRAND)
ORDER BY
	BRAND,
	SEGMENT

SEGMENT,BRAND컬럼 기준으로 합계 -> SEGMENT 컬럼 기준으로 합계 -> 전체합계는 구하지 않습니다.

실습2

 

- 반대로 BRAND를 기준으로 GROUP BY 하고 SEGMENT기준으로 ROLLUP을 합니다.

SELECT
	BRAND,
	SEGMENT,
	SUM(QUANTITY)
FROM
	SALES
GROUP BY
	BRAND,ROLLUP (SEGMENT)
ORDER BY
	BRAND,
	SEGMENT

GROUP BY절 안에 ROLLUP할 컬럼을 지정하여 합계를 조회하는데 부분 ROLLUP을 할 경우 전체의 합계는 구하지 않습니다.

실습3

 

반응형

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

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