Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SQL:Jak wybrać wiersze, które sumują się do określonej wartości

Możesz użyć skorelowanego podzapytania, aby uzyskać sumę bieżącą i pobrać te wiersze, których suma bieżąca jest int . jeśli jest to varchar porównanie zwróci zły wynik)

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

Edycja:Gdy w kolumnie przechowywania znajdują się zduplikowane wartości, należy to uwzględnić w sumie bieżącej poprzez uwzględnienie warunku dla id kolumna. (w tym przypadku < warunek został użyty, więc pobierany jest najmniejszy identyfikator dla zduplikowanej wartości pamięci)

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql - zwróć pierwszą kolumnę raz i wszystkie odpowiadające jej dane

  2. PyInstaller, plik spec, ImportError:brak modułu o nazwie „blah”

  3. Zapytanie o dwa db za pomocą grupowania według i wyświetl szczegółowe informacje

  4. Usuń wiersze za pomocą kreatora zapytań Laravel i LEFT JOIN

  5. Jak uzyskać ostatni dzień miesiąca w mysql, podając miesiąc i rok jako dane wejściowe?