[MSSQL] 순차적 누적 합계 구하기 (SUM OVER)
- 데이터베이스/MSSQL
- 2022. 6. 24.
SQL Server에서 순차적 누적 합계를 구하기 위해서는 SUM 함수와 OVER 절을 사용하면 된다. 누적 합산 기준은 OVER 절 내부의 ORDER BY 절 정렬 기준으로 데이터를 정렬하고 순차적으로 합산을 한다. OVER 절의 내부의 ORDER BY 절 기준으로 데이터가 정렬되어서 조회되므로 WHERE 절 하단에 ORDER BY 절을 추가로 기술할 필요가 없다.
목차 |
순차적 누적 합계 구하기
SELECT empno
, ename
, job
, sal
, SUM(sal) OVER(ORDER BY empno) AS sum_sal
FROM emp
WHERE job IN ('MANAGER', 'SALESMAN')
OVER 절과 SUM 함수를 사용하여 누적 합계를 구할 수 있다.
OVER 절 내부의 ORDER BY 절의 기준으로 정렬되어서 누적 합산이 되며, WHERE 절 하단에 ORDER BY 절이 있다면 OVER 절의 ORDER BY 절과 동일한 기준으로 정렬해야 데이터가 순차적으로 조회된다.
그룹별 순차적 누적 합계 구하기
SELECT empno
, ename
, job
, sal
, SUM(sal) OVER(PARTITION BY job ORDER BY empno) AS sum_sal
FROM emp
WHERE job IN ('MANAGER', 'SALESMAN')
OVER 절 내부에 PARTITION BY 절을 사용하면 그룹별로 누적 합계를 구할 수 있다.
PARTITION BY 절은 GROUP BY 절과 비슷한 개념이라고 생각하면 된다.