我有一个SQL查询,该查询正在计算2列的运行总计。每周都有新数据将添加到DUMMY_TABLE
中,每次我为该表运行running total
时,它将计算我并不需要的所有先前行的运行总数。我只需要新插入的数据的运行总计。如果必须运行之前所有行的总和,将浪费资源。我想知道是否有什么方法可以只返回新插入的一周的运行总计。
我尝试使用where
,但是它过滤数据。我之所以要这样做,是因为如果我每周都有新数据,并且表的大小为1万条记录,那么running total
将重新计算所有的1万条记录和我插入的新数据。
SELECT
RID,FYFW,VOL,FAILED_VOL,SUM(VOL) OVER (PARTITION BY RID,SUBSTR(TRIM(FYFW),1,4) ORDER BY RID,FYFW ROWS UNBOUNDED PRECEDING) AS YTD_VOL,SUM(FAILED_VOL) OVER (PARTITION BY RID,FYFW ROWS UNBOUNDED PRECEDING) AS YTD_FAILED_VOL,FROM DUMMY_TABLE
GROUP BY 1,2,3,4
ORDER BY 1,2;