만약 년별 구매요청 금액이 있을 때, 년별 구매요청금액과 현재까지 누적 구매 요청금액을 확인하고 싶을 경우,

윈도우 함수를 이용하여 쉽게 구할 수 있다.

 

    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 : 누적합 구하는 방법, 처음부터 현재 행 까지 누적합

+ Recent posts