Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

SQL:Como selecionar linhas que somam determinado valor


Você pode usar uma subconsulta correlacionada para obter o total em execução e recuperar as linhas cujo total em execução é int . se for um varchar a comparação retornaria o resultado errado)
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

SQL Fiddle

Editar:quando há valores duplicados na coluna de armazenamento, isso deve ser contabilizado na soma corrente, incluindo uma condição para o id coluna. (neste caso < condição foi usada, então o menor id para um valor de armazenamento duplicado é selecionado)
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