私自身の答えを探しているときにこの質問に出くわしました。同じタスクを実行する別の方法であり、より効率的である可能性があるため、ここにソリューションを残すと思いました。秘訣は、>=
を使用した自己結合です。
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;