Je suis tombé sur cette question en cherchant ma propre réponse. J'ai pensé que je laisserais ma solution ici car c'est une autre façon d'accomplir la même tâche et peut être plus efficace. L'astuce est l'auto-jointure en utilisant >=
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;