본문 바로가기

카테고리 없음

[Oracle] Window함수, 누적합계

 

 

 

SELECT SEQ
     , VAL
     , SUM(VAL) OVER(ORDER BY SEQ ASC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS ACCU1
     , SUM(VAL) OVER(ORDER BY SEQ ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS ACCU2
     , SUM(VAL) OVER(ORDER BY SEQ ASC ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS ACCU3
     , SUM(VAL) OVER(ORDER BY SEQ ASC ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS ACCU4
  FROM (
        SELECT SEQ
             , VAL
          FROM (
                SELECT LEVEL AS SEQ, LEVEL * 10 AS VAL
                  FROM DUAL
                 CONNECT BY LEVEL <= 10
               )
         WHERE 1=1
       )
 WHERE 1=1 ;