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

Chạy tổng cho nhiều danh mục trong MySQL

Bạn có thể tính tổng trong một truy vấn con:

select  Category
,       Time
,       Qty
,       (
        select  sum(Qty) 
        from    YourTable t2 
        where   t1.Category = t2.Category 
                and t1.Time >= t2.Time
        ) as CatTotal
from    YourTable t1

Khả năng đọc giao dịch để tăng tốc độ, bạn có thể sử dụng một biến MySQL để giữ tổng số tiền đang chạy:

select  Category
,       Time
,       Qty
,       @sum := if(@cat = Category,@sum,0) + Qty as CatTotal
,       @cat := Category
from    YourTable
cross join
        (select @cat := '', @sum := 0) as InitVarsAlias
order by
        Category
,       Time

Lệnh được yêu cầu để cấu trúc này hoạt động; nếu bạn cần một thứ tự khác, hãy đưa truy vấn vào một truy vấn con:

select  Category
,       Time
,       Qty
,       CatTotal
from    (
        select  Category
        ,       Time
        ,       Qty
        ,       @sum := if(@cat = Category,@sum,0) + Qty as CatTotal
        ,       @cat := Category
        from    YourTable
        cross join
                (select @cat := '', @sum := 0) as InitVarsAlias
        order by
                Category
        ,       Time
        ) as SubQueryAlias
order by
        Time



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Loại dữ liệu MySQL nào nên được sử dụng cho Vĩ độ / Kinh độ với 8 chữ số thập phân?

  2. chọn các giá trị duy nhất từ ​​một cột

  3. phân vùng tự động cơ sở dữ liệu mysql

  4. JSON_DEPTH () - Tìm độ sâu tối đa của tài liệu JSON trong MySQL

  5. Cách giải quyết Lỗi chung:Máy chủ MySQL 2006 đã biến mất