2016-11-29 76 views
1

有沒有一種方法可以從表中選擇值並總和所有以前的值?MySQL:在特定列中選擇和SUM以前的值

表樣本:

+-------------+ 
| id | Amount | 
+-------------+ 
| 1 | 10 | 
| 2 | 10 | 
| 3 | 10 | 
| 4 | 10 | 
| 5 | 10 | 
| 6 | 10 | 
| 7 | 10 | 
+----+--------+ 

有沒有辦法來從表中選擇和總和(和所有以前的)數據 「數量」 值:

+-------------+ 
| id | Amount | 
+-------------+ 
| 1 | 10 | 
| 2 | 20 | 
| 3 | 30 | 
| 4 | 40 | 
| 5 | 50 | 
| 6 | 60 | 
| 7 | 70 | 
+----+--------+ 

THX,

+0

是的,有幾種方法。一種方法是使用連接。 – Strawberry

+0

請問你能否提供樣品@Strawberry – mwafi

+0

你的意思是加2個表嗎?或者它只有1個表,但是添加了以前的值和更新後的值? –

回答

1

在MySQL,最有效的方式使用變量:

select id, amount, (@sum := @sum + amount) as running_amount 
from t cross join 
    (select @sum := 0) params 
order by id; 
+0

我在所有「running_amount」值中都得到「null」 – mwafi

+1

小錯字(我剛糾正了它)m從@sum中的一個出現處丟失 – Kickstart