ENFJ 비전공자 개발스터디

오라클 Oracle ROLLUP절 CUBE절 본문

Database

오라클 Oracle ROLLUP절 CUBE절

madb 2021. 12. 30. 18:01
반응형

오라클 Oracle ROLLUP절 CUBE절

ROLLUP과 CUBE는 GROUP BY절에서 사용되어 그룹별 소계를 추가로 보여 주는 역할을 한다.

 

ROLLUP(expr1, expr2, …)

ROLLUP은 expr로 명시한 표현식을 기준으로 집계한 결과, 즉 추가적인 집계 정보를 보여 준다.

 

ROLLUP 절에 명시할 수 있는 표현식에는 그룹핑 대상,

즉 SELECT 리스트에서 집계 함수를 제외한 컬럼 등의 표현식이 올 수 있으며,

명시한 표현식 수와 순서(오른쪽에서 왼쪽 순으로)에 따라 레벨별로 집계한 결과가 반환된다.

 

표현식 개수가 n개이면 n+1 레벨까지, 하위 레벨에서 상위 레벨 순으로 데이터가 집계된다.

SELECT period, gubun, SUM(loan_jan_amt) totl_jan
      FROM kor_loan_status
     WHERE period LIKE '2013%'
     GROUP BY period, gubun
     ORDER BY period;
SELECT period, gubun, SUM(loan_jan_amt) totl_jan
      FROM kor_loan_status
     WHERE period LIKE '2013%'
     GROUP BY ROLLUP(period, gubun);

 

CUBE(expr1, expr2, …)

CUBE는 명시한 표현식 개수에 따라 가능한 모든 조합별로 집계한 결과를 반환한다.

CUBE는 2의(expr 수)제곱 만큼 종류별로 집계 된다.

예를 들어, expr 수가 3이면, 집계 결과의 유형은 총 2^3^ = 8개가 된다.

 

SELECT period, gubun, SUM(loan_jan_amt) totl_jan
      FROM kor_loan_status
     WHERE period LIKE '2013%'
     GROUP BY CUBE(period, gubun) ;

 

반응형