Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menjalankan total dengan di setiap grup menggunakan MySQL

Di MySQL, pendekatan yang paling efisien adalah dengan menggunakan variabel:

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;

Anda juga dapat melakukan ini dengan subquery yang berkorelasi:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql melempar kolom 'mac' yang tidak dikenal di 'daftar bidang'

  2. Cara menghapus baris duplikat dan memperbarui tabel

  3. Kesalahan Sintaks MySQL Dalam Deklarasi Variabel

  4. mongoDB vs mySQL -- mengapa yang satu lebih baik dari yang lain dalam beberapa aspek

  5. Bergabung antara tabel dalam dua database yang berbeda?