쵸코코딩/DB
MSSQL- ROLLUP / CUBE - GROUPING()
OK_SON
2020. 6. 19. 14:33
ROLLUP, CUBE에 의해 산출된 통계 결과에서
GROUPING의 인자로 들어가는 컬럼의 값이 NULL일 경우 1, NULL이 아닐 경우 0으로 표기된다.
[예제]
1 2 3 4 5 |
SELECT GROUPING(분류) , 분류, SUM(개수) AS '개수', SUM(금액) AS '금액' FROM A GROUP BY 분류 WITH ROLLUP |
![]() |
위의 예제와 같이 분류 컬럼의 값이 NULL일 경우 GROUPING의 값은 1로 나온다
따라서 ROLLUP, CUBE로 합계를 낼 경우
GROUPING을 통해 NULL로 나온 결과의 값을 '합계'라는 텍스트로 변경해줄 경우 사용할 수 있다.
1 2 3 4 5 6 |
SELECT CASE WHEN GROUPING(분류) = '1' THEN '합계' ELSE 분류 END AS '분류' , SUM(개수) AS '개수', SUM(금액) AS '금액' FROM A GROUP BY 분류 WITH ROLLUP |
![]() |