Можете да използвате корелирана подзаявка, за да получите текущата сума и да извлечете онези редове, чиято текуща обща сума е <определено число. (обърнете внимание, че промених колоната за съхранение на int
. ако е varchar
сравнението би върнало грешен резултат)
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
Редактиране:Когато има дублиращи се стойности в колоната за съхранение, тя трябва да бъде отчетена в текущата сума, като се включи условие за id
колона. (в този случай <
условието е използвано, така че най-малкият идентификатор за дублирана стойност за съхранение се взема)
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