2017-04-12 56 views
0

累计总和我有一个表像这样SQL窗与分组

|week_no|value|attribute| 
------------------------- 
| 1 | 3 | a | 
| 2 | 3 | a | 
| 3 | 3 | a | 
| 1 | 4 | b | 
| 2 | 4 | b | 
| 3 | 4 | b | 

我想有一个帐户累计值列

|week_no|value|attribute|accum_value| 
------------------------------------- 
| 1 | 3 | a |  3  | 
| 2 | 3 | a |  6  | 
| 3 | 3 | a |  9  | 
| 1 | 4 | b |  4  | 
| 2 | 4 | b |  8  | 
| 3 | 4 | b | 12  | 

我已经尝试在做的通过使用此窗口功能尽管它似乎没有返回正确的值

SUM(value) OVER(ORDER BY 1 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS accum_value 
+0

MySQL不支持窗口函数,所以我假设你没有使用它。 –

回答

1

正确的胜利dow功能将使用partition by

SUM(value) OVER (PARTITION BY attribute ORDER BY week_no 
       ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW 
       ) AS accum_value 
+0

这似乎并没有工作,如果有任何我得到了相同的结果,因为看着原始属性,但有一些乘数形式。 – edumike