累积计算

时间:2016-09-11 10:10:02

标签: sql sql-server-2008 sql-server-2012

我有用户表,包含购买数据,加入日期,购买日期和购买价值。

我想计算每个用户从加入日期开始的累计购买价值。

表:

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  

由于

1 个答案:

答案 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;
相关问题