ROLL UP
Roll Up은 각 카테고리별로 소계를 내어 그 최종 합계를 내는 키워드이다.
위 코드에서 CASE - END 구문까지 한 컬럼, ISNULL(Subcategory...)가 한 컬럼, SUM(Quantity)가 한 컬럼이다.
Grouping 함수는 집계된 행의 NULL 여부를 판단할때 사용된다. 해당 행이 소계 합계인경우 1을 리턴하고 이외에는 0을 리턴한다.
CUBE
Cube는 데이터가 계급적인 구조를 가지고 있을때 효과적이다.
앞선 예시와는 다르게 데이터가 계층을 이루지 않는 경우가 있는데, 이 때 행의 소계를 내려고 할때 사용된다.
첫번째 행처럼 두 열 모두 NULL값을 가지는 경우는 총계, 한칸만 NULL인경우엔 다른 한칸에 대한 소게이다.
CUBE도 ROLL UP처럼 GROUPING 함수를 사용할 수 있다.
마찬가지로 Grouping함수로 한쪽이 NULL인경우는 다른 한쪽의 소계, 둘 다 NULL인 경우에는 총계로 분류해줄 수 있다.
'DB > 관계형 DB' 카테고리의 다른 글
내부 조인(INNER JOIN) (0) | 2021.04.28 |
---|---|
PIVOT(크로스탭) (0) | 2021.04.28 |
분할(Partition) (0) | 2021.04.23 |
랭킹 함수(Row_Number, Rank, Dense_Rank, NTile) (0) | 2021.04.22 |
데이터 그룹화(Group By) (0) | 2021.04.22 |