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】:

您似乎想要一个每次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

【讨论】:

以上是关于TSQL - 我如何对绝对值以外的值求和的主要内容,如果未能解决你的问题,请参考以下文章

Pandas:使用 .iloc 对多列求和,但也包括绝对值

SQL 查询:对值求和

按键对哈希进行分组并对值求和

Spark Scala 按唯一键对值求和

根据另一个表中的开始日期和结束日期对值求和

如何在 XSLT 中对值进行分组和求和