Попаднах на този въпрос, докато търсех собствения си отговор. Реших да оставя решението си тук, тъй като това е друг начин за изпълнение на същата задача и може да е по-ефективен. Номерът е в самостоятелното присъединяване с помощта на >=
SELECT s1.ID, s1.name, s1.money, sum(s2.money) as accumulator
FROM student s1
INNER JOIN student s2 ON s1.id >= s2.id
GROUP BY s1.id HAVING accumulator <= 500;