만약 년별 구매요청 금액이 있을 때, 년별 구매요청금액과 현재까지 누적 구매 요청금액을 확인하고 싶을 경우,
윈도우 함수를 이용하여 쉽게 구할 수 있다.
SELECT NO_SQ
, CD_ITEM
, QT_ITEM
, SUM(QT_ITEM) OVER(ORDER BY NO_SQ ASC RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS 누적
FROM (
SELECT 01 NO_SQ, 'A01' CD_ITEM, 1 QT_ITEM UNION ALL
SELECT 02 NO_SQ, 'A02' CD_ITEM, 2 QT_ITEM UNION ALL
SELECT 03 NO_SQ, 'A03' CD_ITEM, 3 QT_ITEM UNION ALL
SELECT 04 NO_SQ, 'A04' CD_ITEM, 4 QT_ITEM UNION ALL
SELECT 05 NO_SQ, 'A05' CD_ITEM, 5 QT_ITEM UNION ALL
SELECT 06 NO_SQ, 'A06' CD_ITEM, 6 QT_ITEM UNION ALL
SELECT 07 NO_SQ, 'A07' CD_ITEM, 7 QT_ITEM UNION ALL
SELECT 08 NO_SQ, 'A08' CD_ITEM, 8 QT_ITEM UNION ALL
SELECT 09 NO_SQ, 'A09' CD_ITEM, 9 QT_ITEM UNION ALL
SELECT 10 NO_SQ, 'A10' CD_ITEM, 10 QT_ITEM UNION ALL
SELECT 11 NO_SQ, 'A11' CD_ITEM, 11 QT_ITEM UNION ALL
SELECT 12 NO_SQ, 'A12' CD_ITEM, 12 QT_ITEM UNION ALL
SELECT 13 NO_SQ, 'A13' CD_ITEM, 13 QT_ITEM UNION ALL
SELECT 14 NO_SQ, 'A14' CD_ITEM, 14 QT_ITEM UNION ALL
SELECT 15 NO_SQ, 'A15' CD_ITEM, 15 QT_ITEM
) A
ORDER BY NO_SQ
SUM(QT_ITEM) OVER(ORDER BY NO_SQ ASC RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS 누적
QT_ITEM : 누적합을 구할 컬럼
ORDER BY NO_SQ ASC : 누적합 구할 때 정렬 기준 열과 정렬 방법
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW : 누적합 구하는 방법, 처음부터 현재 행 까지 누적합
'MSSQL' 카테고리의 다른 글
[MSSQL] 트리거 이름으로 연결된 테이블 찾기 (0) | 2020.11.19 |
---|---|
[MSSQL] 문자열 내 TAB, 개행문자 지우기 (0) | 2020.09.23 |
[MSSQL] 입력, 수정,삭제 중인 테이블 잠금 없이 읽기 (0) | 2020.07.13 |
[MSSQL] 조회된 여러 행의 데이터를 1줄의 문자열로 출력 (0) | 2020.07.02 |
[MSSQL] Database 별 Log Size와 사용률 확인 (0) | 2020.07.01 |