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

Spuštění celkem s v každé skupině pomocí MySQL

V MySQL je nejúčinnějším přístupem použití proměnných:

select e.*,
       (@s := if(@id = e.id, @s + salary,
                 if(@id := e.id, salary, salary)
                )
       ) as running_salary
from (select e.*
      from employee e
      order by e.id, e.month
     ) e cross join
     (select @id := -1, @s := 0) params;

Můžete to také provést pomocí korelovaného poddotazu:

select e.*,
       (select sum(e2.salary)
        from employee e2
        where e2.id = e.id and e2.month <= e.month
       ) as running_salary
from employee e;



  1. Začínáme s PostgreSQL 11 na Ubuntu 18.04

  2. Problém s fokusem systému Vista při vyvolání kontroly pravopisu aplikace Microsoft Word z Oracle Forms

  3. CakePHP 3 se NENÍ schopen připojit k databázi kvůli chybějícímu rozšíření PHP

  4. Nejlepší způsob, jak obdržet e-mail po souběžném selhání (sql - trigger - application)