데이터베이스/MSSQL

[MSSQL] CUBE 함수 사용법 (모든 경우의 합계)

젠트 2023. 6. 17. 21:45

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 두 개의 칼럼으로 구할 수 있는 모든 합계가 출력된다.

 

하나의 쿼리문으로 모든 합계를 구할 수 있기 때문에 상황에 따라서 유용하게 사용할 수 있다. 실무 쿼리에서는 자주 사용하지 않지만 가끔 가다가 필요한 경우가 있으니 기억해 두면 많은 도움이 될 것이다.

예제쿼리(테이블포함).txt
0.00MB

 

[MSSQL] ROLLUP 사용법 (소계, 합계)

SQL Server에서 그룹 함수로 집계된 데이터에서 소계, 합계를 쉽게 구하기 위해서는 ROLLUP를 사용하면 된다. 아래의 예제를 참고하면 쉽게 이해할 수 있다. ROLLUP은 2가지 사용방법이 있다. 어느 것을

gent.tistory.com

 

[MSSQL] 합계 구하는 3가지 방법 (SUM 함수)

SQL Server에서 합계를 구하기 위해서는 SUM 함수를 사용하면 됩니다. SUM 함수를 사용하여 합계를 구하면 조회된 각 행에 합계를 표시할 수 있으며, 별도의 새로운 행으로 합계를 표시하고 싶을 때

gent.tistory.com