Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chạy tổng số với từng nhóm bằng MySQL

Trong MySQL, cách tiếp cận hiệu quả nhất là sử dụng các biến:

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;

Bạn cũng có thể thực hiện việc này với một truy vấn con có liên quan:

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. Làm thế nào để kết hợp ba truy vấn MySQL thành một?

  2. Thiết kế cơ sở dữ liệu MySQL. Chèn các hàng trong bảng 1to1.

  3. Kiểu dữ liệu xếp hạng 5 sao của MySQL?

  4. MySQL Có thể THAM GIA một bảng dựa trên danh sách dữ liệu tĩnh, được cung cấp không?

  5. MySQL tạo thời gian và cập nhật dấu thời gian