TSQL - 我如何对绝对值以外的值求和
Posted
技术标签:
【中文标题】TSQL - 我如何对绝对值以外的值求和【英文标题】:TSQL - how can I sum values except absolutes 【发布时间】:2020-11-07 17:35:51 【问题描述】:我想对表中的值求和,但绝对值除外(字段绝对值,值 = 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。
我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:您似乎想要一个每次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
。
【讨论】:
以上是关于TSQL - 我如何对绝对值以外的值求和的主要内容,如果未能解决你的问题,请参考以下文章