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는 이러한 성질로 다차원적 소계, 총 합계와 모든 소계를 보고싶은경우 사용합니다.
'Work > DataBase' 카테고리의 다른 글
[SQLD] SQLD 공부법 (1주) - 단기 합격 , 전공자 (3) | 2020.07.02 |
---|---|
[SQLD] 그룹함수 - GROUPING SETS 예문, 총정리 (0) | 2020.07.02 |
[SQLD] 그룹함수 - ROLLUP 예문, 총정리, 사용시 주의사항 (0) | 2020.07.02 |
[SQLD] 윈도우함수 - 비율함수 (ratio_to_report, percent_rank, cume_dist, ntile) (0) | 2020.06.28 |
[SQLD] 윈도우함수 - 순위함수(rank, dense_rank, row_number) (0) | 2020.06.28 |