如何仅在特定行上运行ROWS UNBOUNDED PRECEDING

我有一个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;

如何仅在特定行上运行ROWS UNBOUNDED PRECEDING

zhaopingg 回答:如何仅在特定行上运行ROWS UNBOUNDED PRECEDING

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2755987.html

大家都在问