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

Tidak dapat secara kumulatif menjumlahkan `COUNT(*)`

Saya setuju dengan @Ashalynd, nilai count(*) belum dievaluasi. Ini sedikit eksperimen yang saya lakukan :

1.
    SELECT
        GROUP_ID,    
        @COUNTER := @COUNTER + COUNT(*)  GROUPCOUNT,
        @COUNTER COUNTER
     FROM
        TEST_GROUP_CUMULATIVE, 
        (SELECT @COUNTER := 0) R
    GROUP BY
        GROUP_ID;

-- RESULT
============

   GROUP_ID    GROUPCOUNT    COUNTER
  ------------------------------------     
   1           1             0
   2           1             0
   3           1             0

2.
    SELECT @COUNTER;

    -- RESULT
    =============

    @COUNTER
    --------
    1

Untuk setiap grup, variabel diinisialisasi sebagai 0. Ini berarti COUNT(*) belum dievaluasi.

Juga, ketika Anda melakukannya:

 1.
    SELECT
        GROUP_ID,    
        @COUNTER := @COUNTER + 1  GROUPCOUNT,
        @COUNTER COUNTER
     FROM
        TEST_GROUP_CUMULATIVE, 
        (SELECT @COUNTER := 0) R
    GROUP BY
        GROUP_ID;

-- RESULT
============
   GROUP_ID    GROUPCOUNT    COUNTER
  ------------------------------------     
   1           1             1
   2           1             2
   3           1             3

2.    
SELECT @COUNTER;

    -- RESULT
    =============

    @COUNTER
    --------
    3

Itu tidak harus mengevaluasi 1. Itu langsung menjumlahkannya dan memberi Anda jumlah kumulatif.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat database MySQL dari file dump di skrip expect/TCL?

  2. Bagaimana cara memotong tabel menggunakan pernyataan yang disiapkan di MySQL?

  3. Array multidimensi PHP MYSQL

  4. mysql LIKE dengan dua persen

  5. php foreach loop dan tombol addmore dalam formulir