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

TSQL - how can I sum values except absolutes

我想对 table 中的值求和,但绝对值除外(字段绝对值,值 = 1)。如果是这样,求和应该重置。示例:

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

常规 SUM() 会 return (4+7+3=) 14。但在这个例子中它应该重置为值 7,这使得总和为 (7+3=) 10。

我怎样才能使这个工作?

您似乎想要一个 window 每次 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 的 window 总和来定义组,然后外部查询对每个组执行总和 value