본문 바로가기
DB 관련

[Oracle] 그룹함수(rollup,cube,grouping sets, group) 차이점

by 주빵 2021. 5. 26.

ROLLUP

-group by rollup(col1,col2) = col1별 col2 + col별 col2의 소계 + 총계

 

CUBE
-group by cube(col1,col2) = co1,co2로 조합가능한 모든 경우별 소계와 총계 (2의n승)
따라서 cube는 rollup과 다르게 인자의 순서가 바껴도 영향이없다.

 

GROUPING SETS 
-group by grouping sets(col1,col2) = col1별 col2의 소계 + col2별 col1의 소계

-묶여진컬럼을 하나로 인식해 grouping sets((col1,col2),col3) 식으로 활용도 가능

 

GROUPING

-ROLLUP이랑 같이 사용. 해당 칼럼이 ROLLUP 되었을 때 그룹에서 빠져있다면 1을 반환. 즉, GROUP BY ROLLUP 결과로 NULL이 나왔을 때 1을 반환.
-따라서 직접 그룹별 집계를 구하지는 않지만 앞서 말한 ROLLUP, CUBE, GROUPING SETS를 지원하는 역할. 집계가 계산된 결과에 GROUPING(표현식) = 1이 되며, 그 외에는 GROUPING(표현식) = 0이 된다.

 

💊참조

https://velog.io/@dongchyeon/%EC%98%A4%EB%9D%BC%ED%81%B4Oracle-%EA%B7%B8%EB%A3%B9-%ED%95%A8%EC%88%98-ROLLUP-CUBE-GROUPING-%EB%93%B1

반응형

댓글