Data Scientist

[MSSQL] 다중 GROUP 지정 GROUP BY GROUPING SETS 본문

SQL

[MSSQL] 다중 GROUP 지정 GROUP BY GROUPING SETS

Cosmo-JH 2020. 8. 7. 15:50

SQL에서 간단한 통계를 내고자 할 때 GROUP BY 구문을 자주 사용하곤 한다. 그러나 여러번의 GROUP BY가 필요한 소계, 총계 등이 섞여 있다면 그것을 한방에 해결해 줄 구분이 바로 GROUP BY GROUPING SETS 이다. 사용법 또한 매우 간단하고 직관적이다.

작성 방법

  
SELECT 	
        SEX_TP_CD,
        AGG,
        ym,        
        SUM(SAL) AS SAL_SUM
FROM EMP_MAST
GROUP BY GROUPING SETS
(
      (),
      (SEX_TP_CD),
      (SEX_TP_CD, AGG),
      (SEX_TP_CD, AGG, ym)
)

원하는 GROUP BY 조건을 GROUPING SETS 안에 괄호() 안에 나열해주면 된다. GROUP BY 조건에 따라서 명칭이 NULL이 나오는 경우는 ISNULL() 함수를 이용하여 값을 대체해주면 더욱 깔끔하게 마무리 지을 수 있다.

결과