Du kan göra detta genom att gå med i bordet på sig själv. SUMMA kommer att lägga ihop alla rader upp till denna rad:
select cur.id, sum(prev.val)
from TheTable cur
left join TheTable prev
on cur.id >= prev.id
group by cur.id
MySQL tillåter också användningen av användarvariabler för att beräkna detta, vilket är mer effektivt men anses vara något av ett hack:
select
id
, @running_total := @running_total + val AS RunningTotal
from TheTable