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

Menjalankan Jumlah untuk Beberapa Kategori di MySQL

Anda dapat menghitung jumlah dalam subkueri:

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

Memperdagangkan keterbacaan untuk kecepatan, Anda dapat menggunakan variabel MySQL untuk menahan jumlah berjalan:

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

Pemesanan diperlukan agar konstruksi ini berfungsi; jika Anda membutuhkan urutan yang berbeda, bungkus kueri dalam subkueri:

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. Menangani Latensi dalam Transaksi MySQL

  2. Bagaimana cara mendapatkan banyak hitungan dengan satu kueri SQL?

  3. PHP MySQL PDO:cara mempertahankan angka nol di depan kolom zerofill int

  4. Bagaimana Saya Menangani Ikatan Saat Memberi Peringkat Hasil di MySQL?

  5. Menghitung perbedaan antara dua tanggal dalam PHP