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

Perhitungan MySQL dalam pernyataan pilih

Secara umum, SQL tidak benar-benar dimaksudkan untuk menghasilkan "total berjalan" seperti yang Anda inginkan. RDBMS lain telah memperkenalkan ekstensi eksklusif untuk memberikan fungsi analitik yang memungkinkan penghitungan semacam ini, tetapi MySQL tidak memiliki fitur seperti itu.

Sebaliknya, satu secara luas memiliki empat pilihan. Tanpa urutan tertentu:

  1. Akumulasi total yang berjalan di aplikasi Anda, saat Anda mengulang hasil;

  2. Ubah skema Anda untuk melacak total yang berjalan dalam database Anda (terutama bagus dalam situasi seperti ini, di mana data baru hanya ditambahkan "sampai akhir");

  3. Kelompokkan self-join:

    SELECT   a.Sale_Date,
             SUM(a.Stock_Delivered)                AS Stock_Delivered,
             SUM(a.Units_Sold)                     AS Units_Sold,
             SUM(b.Stock_Delivered - b.Units_Sold) AS `Stock Balance`
    FROM     sales_report a
        JOIN sales_report b ON b.Sale_Date <= a.Sale_Date
    GROUP BY a.Sale_Date
    
  4. Akumulasi total yang berjalan dalam variabel pengguna :

    SELECT   Sale_Date,
             Stock_Delivered,
             Units_Sold,
             @t := @t + Stock_Delivered - Units_Sold AS `Stock Balance`
    FROM     sales_report, (SELECT @t:=0) init
    ORDER BY Sale_Date
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa set karakter terbaik untuk bidang email?

  2. Tipe data MySql FLOAT dan masalah dengan skala lebih dari 7 digit

  3. Permintaan MySQL - Gabungkan data berdasarkan dua faktor, lalu sesuaikan cara data diurutkan berdasarkan nilai

  4. Pembaruan MySQL dengan pernyataan if

  5. Saat menggunakan NetBeans untuk men-debug skrip PHP untuk mengubah catatan tabel, 'affected_rows' akan berubah dari 1 menjadi -1