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