[SQL] ROLLLUP, CUBE, GROUPING

seringee·2023년 11월 16일
0

개발자개인공부

목록 보기
19/28

GROUP BY 절

SELECT 상품ID,, SUM(매출액) AS 매출액
FROM 월별매출
GROUP BY 상품ID,;

GROUP BY 절

ROLLUP

  • 소그룹 간 합계, 소계 로우 추가, total 로우 마지막에 추가됨
  • 인자로 주어진 컬럼의 순서에 따라 다른 결과를 추출하게 됨
  • 맨 처음 명시한 컬럼에 대해서만 소계 계산, 상품ID
SELECT 상품ID,, SUM(매출액) AS 매출액
FROM 월별매출
GROUP BY ROLLUP(상품ID,);

ROLLUP

CUBE

  • 다차원적인 소계, GROUP BY절에 명시한 모든 컬럼에 대해 합계, 소계 계산
SELECT 상품ID,, SUM(매출액) AS 매출액
FROM 월별매출
GROUP BY CUBE(상품ID,);

CUBE

GROUPING SETS

  • 특정 항목에 대한 소계를 계산
SELECT 상품ID,, SUM(매출액) AS 매출액
FROM 월별매출
GROUP BY GROUPING SETS(상품ID,);

GROUPING SETS

GROUPING

  • 집계함수들을 지원하는 함수
  • 집계로 생긴 로우는 1의 값을 갖고 그렇지 않은 결과는 0을 가짐.
SELECT 
    CASE GROUPING(상품ID) WHEN 1 THEN '모든 상품ID' ELSE 상품ID END AS 상품ID,
    CASE GROUPING() WHEN 1 THEN '모든 월' ELSEEND AS, 
    SUM(매출액) AS 매출액
FROM 월별매출
GROUP BY ROLLUP(상품ID,);

GROUPING

profile
개발 공부 정리하고 저장하기

0개의 댓글