问题描述
除了绝对值(字段绝对值,值= 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。
我该如何进行这项工作?
解决方法
您似乎希望每次absolute
为1
时都会重置的窗口总和。如果是这样,您可以这样做:
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
。