TSQL-如何对除绝对值以外的值求和

问题描述

除了绝对值(字段绝对值,值= 1)之外,我想对表中的值求和。如果是这种情况,求和应该重新设置。示例:

Date            Value      Absolute
1-1-2020        4          0    
1-2-2020        7          1    
1-3-2020        3          0

常规SUM()将返回(4 + 7 + 3 =)14。但是在此示例中,它应重置为值7,这等于(7 + 3 =)10。

我该如何进行这项工作?

解决方法

您似乎希望每次absolute1时都会重置的窗口总和。如果是这样,您可以这样做:

select t.*,sum(value) over(partition by grp order by date) sum_value
from (
    select t.*,sum(absolute) over(order by date) grp 
    from mytable t
) t

子查询使用窗口总和absolute定义组,然后外部查询对每个组执行总和value