sql >> Databáze >  >> RDS >> Mysql

SQL:Jak vybrat řádky, které sčítají určitou hodnotu

K získání průběžného součtu a načtení těch řádků, jejichž průběžný součet je int . pokud se jedná o varchar porovnání by vrátilo špatný výsledek)

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

Upravit:Pokud jsou ve sloupci úložiště duplicitní hodnoty, je třeba to započítat do průběžného součtu zahrnutím podmínky pro id sloupec. (v tomto případě < byla použita podmínka, takže se vybere nejmenší ID pro duplicitní hodnotu úložiště)

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


  1. Jak nastavit vzdálené připojení k PostgreSQL

  2. Funkce RPAD() v Oracle

  3. 11 funkcí pro získání dne, měsíce a roku z data v MariaDB

  4. Jak mohu obdržet e-mail, když je moje tabulka MySQL aktualizována?