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

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

 

댓글

Designed by JB FACTORY