본문 바로가기
Work/DataBase

[SQLD] 그룹함수 - CUBE 예문, 총정리

GROUP FUNCTION 

1.소그룹 간의 소계를 계산하는 ROLLUP, - 글 바로가기

2.다차원적인 소계를 계산하는 CUBE

3.특정항목에 대한 소계를 계산하는 GROUPING SETS 함수 총 3가지가 있습니다. - 글 바로가기

 

2. CUBE 함수 

CUBE 는 그룹화된 모든 경우에 합을 구함 ,

ROLLUP과 달리 그룹화의 순서가 중요하지않다!

 

select * from test1

 

예제에 사용할 test1 테이블

 

기본예제

select col1,sum(col2)
  from test1 
 group by CUBE(col1) 

 

그룹을 하나만 사용하면, ROLLUP과 결과가 같다.

그룹화를 2개이상 할때 달라진다. 

 

select COL1
      ,COL2
      , COUNT(*) 행수
  from test1 
 group by CUBE(COL1,COL2) 
 order by col1;

 

ROLLUP과 뭐가 다른지 아시겠나요?

그룹화된 모든 컬럼마다. 소계와 합계가 생긴겁니다!

select NVL(COL1,'합') COL1
      ,NVL(COL2,'합') COL2
      , COUNT(*) 행수
  from test1 
 group by CUBE(COL1,COL2) 
 order by col1;

NVL 함수로 합임을 알려줍시다.

5개 행밖에 안되는데 너무 쓰잘대없이 예문을 들었군요, 어쨋든 컬럼별로 소계와 총계를 낼수있는 함수가 CUBE입니다.

CUBE는 이러한 성질로 다차원적 소계, 총 합계와  모든 소계를 보고싶은경우 사용합니다.