SQL « как посчитать сумму всех предыдущих значений поля?
у меня есть таблица вида:
period, summa
...
11, 1000
12, 1200
13, 1000
14, 1100
...
мне нужно составить запрос, который бы выдал следующее:
period, summa
...
11, 1000
12, 2200
13, 3200
14, 4300
...
т.е. во втором столбце должна быть сумма всех предыдущих значений из данного поля (suаmma), можно ли такое сделать?
period, summa
...
11, 1000
12, 1200
13, 1000
14, 1100
...
мне нужно составить запрос, который бы выдал следующее:
period, summa
...
11, 1000
12, 2200
13, 3200
14, 4300
...
т.е. во втором столбце должна быть сумма всех предыдущих значений из данного поля (suаmma), можно ли такое сделать?
1 ответов
SELECT @total := 0;
SELECT `period` , `summa`, @total := @total + `summa` as total
FROM `mytable`
WHERE 1
LIMIT 0 , 30
вернет такое:
period, summa, total
...
11, 1000, 1000
12, 1200, 2200
13, 1000, 3200
14, 1100, 4300
...
declare @table table (period int, summa int)
insert into @table
values
(11, 1000),
(12, 2200),
(13, 3200),
(14, 4300)
select t.period, SUM(t1.summa)
from @table t
inner join @table t1 on t1.period < t.period
group by t.period