2016-11-29 4 views
1

テーブルから値を選択して以前の値を合計する方法はありますか?MySQL:特定の列の前の値を選択して合計する

表のサンプル:

+-------------+ 
| 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

はい、いくつかの方法があります。 1つの方法は、結合を使用することです。 – Strawberry

+0

Plsは、サンプルを提供することができます@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

@sumの出現箇所の1つにmが欠けていたマイナータイプミス(修正しました) – Kickstart

関連する問題