Puoi farlo unendo il tavolo su se stesso. La SOMMA somma tutte le righe fino a questa riga:
select cur.id, sum(prev.val)
from TheTable cur
left join TheTable prev
on cur.id >= prev.id
group by cur.id
MySQL consente anche l'uso di variabili utente per calcolarlo, che è più efficiente ma considerato una sorta di hack:
select
id
, @running_total := @running_total + val AS RunningTotal
from TheTable