[MSSQL] CUBE 함수 사용법 (모든 경우의 합계)
- 데이터베이스/MSSQL
- 2023. 6. 17.
SQL Server에서 모든 경우의 합계를 구할 때는 CUBE 함수를 사용하면 된다. 일반적인 합계를 구할 때는 SUM 함수를 사용하지만, 합계와 소계를 동시에 구하기 위해서는 ROLLUP, CUBE, GROUPING SETS 함수를 사용할 수 있다. 합계와 소계를 구하는 3가지 함수는 조금씩 결과가 다르게 출력되니, 상황에 맞게 사용하면 된다.
CUBE 함수 사용법
SELECT job
, SUM(sal)
FROM emp
WHERE job IN ('ANALYST', 'MANAGER', 'SALESMAN')
GROUP BY CUBE(job)
그룹 칼럼 job에 대한 합계가 조회된 결과에 출력된다.
그룹 칼럼이 한 개인 경우 ROLLUP 함수와 동일한 결과가 출력된다.
그러나 그룹 칼럼이 여러 개인 경우 다른 결과가 출력되니 아래를 예시를 확인 확인해 보자.
SELECT job
, deptno
, SUM(sal)
FROM emp
WHERE job IN ('ANALYST', 'MANAGER', 'SALESMAN')
GROUP BY CUBE(job, deptno)
그룹 칼럼 job, deptno 두 개의 칼럼으로 구할 수 있는 모든 합계가 출력된다.
하나의 쿼리문으로 모든 합계를 구할 수 있기 때문에 상황에 따라서 유용하게 사용할 수 있다. 실무 쿼리에서는 자주 사용하지 않지만 가끔 가다가 필요한 경우가 있으니 기억해 두면 많은 도움이 될 것이다.