2016-11-29 2 views
1

Gibt es eine Möglichkeit, Werte aus der Tabelle auszuwählen und alle vorherigen Werte zu summieren?MySQL: Auswählen und SUM vorherige Werte in bestimmten Spalte

Tabelle Beispiel:

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

Gibt es eine Möglichkeit, Daten aus der Tabelle und Summe "Betrag" Werte (Summe aller vorherigen) zu wählen:

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

thx,

+0

Ja, ein paar Möglichkeiten. Eine Möglichkeit ist die Verwendung eines Joins. – Strawberry

+0

Pls, können Sie Probe @Strawberry liefern – mwafi

+0

meinst du 2 Tabellen addieren ?. oder nur 1 Tabelle, aber mit dem vorherigen Wert und dem aktualisierten Wert ?. –

Antwort

1

In MySQL, der effizienteste Weg, dies zu tun, verwendet Variablen:

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

Ich bekomme "Null" in allen "running_amount" -Werten – mwafi

+1

Minor Tippfehler (ich korrigierte es gerade), wo der m von einem der Vorkommen von @sum fehlte – Kickstart

Verwandte Themen