U kunt dit doen door alleen aan de tafel te zitten. De SUM telt alle rijen op tot aan deze rij:
select cur.id, sum(prev.val)
from TheTable cur
left join TheTable prev
on cur.id >= prev.id
group by cur.id
MySQL maakt het ook mogelijk om gebruikersvariabelen te gebruiken om dit te berekenen, wat efficiënter is, maar als een soort hack wordt beschouwd:
select
id
, @running_total := @running_total + val AS RunningTotal
from TheTable