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

Tạo một cột tổng tích lũy trong MySQL

Sử dụng truy vấn tương quan:

  SELECT t.id,
         t.count,
         (SELECT SUM(x.count)
            FROM TABLE x
           WHERE x.id <= t.id) AS cumulative_sum
    FROM TABLE t
ORDER BY t.id

Sử dụng các biến MySQL:

  SELECT t.id,
         t.count,
         @running_total := @running_total + t.count AS cumulative_sum
    FROM TABLE t
    JOIN (SELECT @running_total := 0) r
ORDER BY t.id

Lưu ý:

  • JOIN (SELECT @running_total := 0) r là một phép nối chéo và cho phép khai báo biến mà không yêu cầu SET riêng biệt yêu cầu.
  • Bí danh của bảng, r , được MySQL yêu cầu đối với bất kỳ truy vấn con / bảng dẫn xuất / chế độ xem nội tuyến nào

Lưu ý:

  • MySQL cụ thể; không di động đến các cơ sở dữ liệu khác
  • ORDER BY là quan trọng; nó đảm bảo thứ tự khớp với OP và có thể có ý nghĩa lớn hơn đối với việc sử dụng biến phức tạp hơn (chức năng IE:psuedo ROW_NUMBER / RANK, mà MySQL thiếu)


  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 bao phủ so với tổng hợp và chỉ số cột

  2. Mẹo nâng cấp Percona XtraDB Cluster lên 8.0

  3. MySQL DISTINCT trên GROUP_CONCAT ()

  4. Truy vấn chèn MySQL không hoạt động với mệnh đề WHERE

  5. MySQL:Sao chép cơ sở dữ liệu MySQL trên cùng một phiên bản MySql