다차원의 소계를 구한다
브랜드brand 별, 세그먼트segment 별 소계 및 전체 합계를 보고 싶다
역시 GRUOPING SETS로 아래와 같이 할 수 있다
SELECT
brand,
segment,
sum(revenue)
FROM
sales_items
GROUP BY
GROUPING SETS (
(brand, segment),
(brand),
(segment),
())
ORDER BY
brand,
segment;
이를 쉽게 하는 방법이 CUBE() 절
SELECT
brand,
segment,
sum(revenue)
FROM
sales_items
GROUP BY
CUBE (brand,segment)
ORDER BY
brand,
segment;
CUBE 절에 지정된 컬럼 수가 N개 면, 2의 N승 개의 레벨(유형)을 보여준다. 이전 ROLLUP 글과 비교해보자
- (brand, segment) 별 소계
- brand 별 소계
- segment 별 소계
- 전체 합계
브랜드를 기준으로 각 세그먼트의 소계 및 브랜드 별 합계를 보고 싶다 - 분할 CUBE
브랜드brand를 따로 group by 한다.
SELECT
brand,
segment,
sum(revenue)
FROM
sales_items
GROUP BY
brand ,
CUBE (segment)
ORDER BY brand;
결과
재밌게도 결과가 분할 ROLLUP과 같다
아래는 분할 ROLLUP. 분할 ROLLUP 글
SELECT
brand,
segment,
sum(revenue)
FROM
sales_items
GROUP BY
brand ,
ROLLUP (segment)
ORDER BY brand;
'데이터 분석 > SQL' 카테고리의 다른 글
[SQL 문법] AVG 함수 (0) | 2020.11.05 |
---|---|
[SQL 문법] 분석 함수 (0) | 2020.11.05 |
[SQL 문법] ROLLUP ( ) 절 (0) | 2020.11.05 |
[SQL 문법] GROUPING SET 절, GROUPING 함수 (0) | 2020.11.04 |
[SQL 문법] HAVING (0) | 2020.11.04 |