2016-11-29 4 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 | 
+----+--------+ 

ТНХ,

+0

Да, пару способов. Один из способов - использование соединения. – 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» – mwafi

+1

Незначительная опечатка (я только что исправил ее), где m отсутствовал в одном из вхождений @sum – Kickstart