Bạn có thể sử dụng một truy vấn con tương quan để lấy tổng số đang chạy và truy xuất những hàng có tổng số đang chạy varchar
so sánh sẽ trả về kết quả sai)
select id,user_id,storage
from uploads t
where storage+coalesce((select sum(storage) from uploads
where storage<t.storage),0) < 410000
order by storage
Chỉnh sửa:Khi có các giá trị trùng lặp trong cột lưu trữ, nó phải được tính vào tổng đang chạy bằng cách bao gồm một điều kiện cho id
cột. (trong trường hợp này là <
điều kiện đã được sử dụng, vì vậy id nhỏ nhất cho giá trị lưu trữ trùng lặp sẽ được chọn)
select id,user_id,storage
from uploads t
where storage+coalesce((select sum(storage) from uploads
where storage<t.storage
or (storage=t.storage and id < t.id)),0) < 410000
order by storage