Możesz użyć skorelowanego podzapytania, aby uzyskać sumę bieżącą i pobrać te wiersze, których suma bieżąca jest varchar
porównanie zwróci zły wynik)
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
Edycja:Gdy w kolumnie przechowywania znajdują się zduplikowane wartości, należy to uwzględnić w sumie bieżącej poprzez uwzględnienie warunku dla id
kolumna. (w tym przypadku <
warunek został użyty, więc pobierany jest najmniejszy identyfikator dla zduplikowanej wartości pamięci)
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