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

Buat Kolom Jumlah Kumulatif di MySQL

Menggunakan kueri yang berkorelasi:

  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

Menggunakan variabel 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

Catatan:

  • The JOIN (SELECT @running_total := 0) r adalah gabungan silang, dan memungkinkan deklarasi variabel tanpa memerlukan SET separate yang terpisah memerintah.
  • Alias ​​tabel, r , diperlukan oleh MySQL untuk setiap subquery/tabel turunan/tampilan sebaris

Peringatan:

  • khusus MySQL; tidak portabel ke database lain
  • ORDER BY penting; ini memastikan urutan cocok dengan OP dan dapat memiliki implikasi yang lebih besar untuk penggunaan variabel yang lebih rumit (IE:fungsi psuedo ROW_NUMBER/RANK, yang tidak dimiliki MySQL)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengimpor dan Mengekspor File CSV Menggunakan PHP dan MySQL

  2. mysqli atau PDO - apa kelebihan dan kekurangannya?

  3. Bagaimana cara menulis REST API?

  4. Contoh WAKTU LOKAL – MySQL

  5. Mencoba mendapatkan properti non-objek di