Sie können eine korrelierte Unterabfrage verwenden, um die laufende Summe abzurufen und die Zeilen abzurufen, deren laufende Summe varchar
ist der Vergleich würde ein falsches Ergebnis liefern)
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
Bearbeiten:Wenn in der Speicherspalte doppelte Werte vorhanden sind, muss dies in der laufenden Summe berücksichtigt werden, indem eine Bedingung für die id
eingefügt wird Säule. (in diesem Fall <
Bedingung wurde verwendet, sodass die kleinste ID für einen doppelten Speicherwert abgeholt wird)
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