오라클 SUM OVER

-- 직전 데이터 2개와 현재 행과 합 구하기
WITH t AS (
SELECT '201201' month, 100 qty FROM dual
UNION ALL SELECT '201202' month, 80 qty FROM dual
UNION ALL SELECT '201203' month, 50 qty FROM dual
UNION ALL SELECT '201204' month, 70 qty FROM dual
UNION ALL SELECT '201206' month, 70 qty FROM dual
UNION ALL SELECT '201207' month, 70 qty FROM dual
UNION ALL SELECT '201209' month, 40 qty FROM dual
) 
SELECT month
     , qty
     , SUM(qty) OVER(
       ORDER BY TO_DATE(month, 'yyyymm')
       RANGE INTERVAL '2' MONTH PRECEDING
       ) AS sum
  FROM t
;

MONTH         QTY        SUM
------ ---------- ----------
201201        100        100
201202         80        180
201203         50        230
201204         70        200
201206         70        140
201207         70        140
201209         40        110

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다