Gặp phải câu hỏi này trong khi tìm kiếm câu trả lời của riêng tôi. Tôi nghĩ rằng tôi sẽ để giải pháp của mình ở đây vì đó là một cách khác để hoàn thành nhiệm vụ tương tự và có thể hiệu quả hơn. Bí quyết là tự tham gia bằng cách sử dụng >=
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;