我想对值求和,但只给出唯一的ID和条件日期。例如,我希望对行日期之前的ID的所有值求和,我的表如下所示:
ID|Date |Val| Val2
x |1/1/2016|1|0
y |1/1/2016|3|0
z |1/1/2016|2|0
x |2/1/2016|2|0
y |2/1/2016|0|0
z |2/1/2016|1|0
x |3/1/2016|0|0
y |3/1/2016|5|0
z |3/1/2016|2|0
我希望它看起来像:
ID|Date |Val| Val2
x |1/1/2016|1|1
y |1/1/2016|3|3
z |1/1/2016|2|2
x |2/1/2016|2|3
y |2/1/2016|0|3
z |2/1/2016|1|3
x |3/1/2016|0|3
y |3/1/2016|5|8
z |3/1/2016|2|5
有什么想法吗?跨列求和很简单,并且按组对唯一ID的行求和是合乎逻辑的,但是如何使用日期和ID对行进行条件求和?
答案 0 :(得分:1)
您正在寻找累计金额:
select id, date, val,
sum(val) over (partition by id order by date) as val2
from t;