我有用户表,包含购买数据,加入日期,购买日期和购买价值。
我想计算每个用户从加入日期开始的累计购买价值。
表:
user join_date purchase date purchase value
--------------------------------------------------
1 9/1/2016 9/7/2016 50
2 1/5/2015 6/9/2016 45
3 9/7/2016 10/8/2016 89
我想提取如下数据:
user join_date purchase date purchase value WW
-------------------------------------------------------
1 9/1/2016 Null 0 35
1 9/1/2016 9/7/2016 50 36
1 9/1/2016 Null 0 37
1 9/1/2016 Null 0 38
由于
答案 0 :(得分:1)
在SQL Server 2012+中,您将使用ANSI标准计算累积和的方法。
我不确定您想要的结果与给定的数据有什么关系,但您的书面问题的答案是:
select p.*,
sum(purchase_value) over (partition by user order by purchase_date) as cumulative_value
from purchases p;