È possibile utilizzare una sottoquery correlata per ottenere il totale parziale e recuperare quelle righe il cui totale parziale è varchar
il confronto restituirebbe il risultato sbagliato)
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
Modifica:quando sono presenti valori duplicati nella colonna di archiviazione, è necessario tenerne conto nella somma corrente includendo una condizione per l'id
colonna. (in questo caso <
condizione è stata utilizzata, quindi viene prelevato l'ID più piccolo per un valore di archiviazione duplicato)
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