これを行うには、テーブル自体を結合します。 SUMは、この行までのすべての行を合計します:
select cur.id, sum(prev.val)
from TheTable cur
left join TheTable prev
on cur.id >= prev.id
group by cur.id
MySQLでは、ユーザー変数を使用してこれを計算することもできます。これはより効率的ですが、ハックのようなものと見なされます:
select
id
, @running_total := @running_total + val AS RunningTotal
from TheTable