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

MySQL dotaz, který počítá částečné součty

Můžete to udělat připojením stolu na sebe. Součet sečte všechny řádky až do tohoto řádku:

select cur.id, sum(prev.val)
from TheTable cur
left join TheTable prev
    on cur.id >= prev.id
group by cur.id

MySQL také umožňuje použití uživatelských proměnných k výpočtu, což je efektivnější, ale považuje se to za něco jako hack:

select 
     id
,    @running_total := @running_total + val AS RunningTotal
from TheTable


  1. Urychlení velkého počtu aktualizací a vložení mysql

  2. Získejte výchozí sériovou hodnotu po INSERT uvnitř PL/pgSQL

  3. Získání výjimky java.sql.SQLException:Operace není povolena po uzavření sady ResultSet

  4. Je zobrazení MySQL rychlejší než běžný dotaz?