如果我有一个这样的表:
DATE CATEGORY QTY SUM
01/01/2019 B 2 true
02/01/2019 B 3 true
03/01/2019 A 1 false
04/01/2019 B 3 true
05/01/2019 A 3 true
06/01/2019 A 2 true
我需要按类别添加qty字段,其中“ sum”列为true,并按“ date”字段排序。如何在SQL Server中使用CTE获得以下结果
结果查询:
DATE CATEGORY QTY_TOTAL SUM
01/01/2019 B 2 true
02/01/2019 B 5 true
03/01/2019 A 0 false
04/01/2019 B 8 true
05/01/2019 A 3 true
06/01/2019 A 5 true
PS:我一直在寻找类似的问题,但没有一个可以完全澄清我的疑问。
谢谢!
答案 0 :(得分:1)
您要累计:
select t.*, sum(case when [sum] = 'true' then qty else 0 end) over (partition by category order by [date]) as QTY_TOTAL
from table t
order by [date];