Rumah > Artikel > pangkalan data > Bagaimana untuk Melakukan Pengagregatan Bersyarat dengan SUM dan COUNT dalam MySQL?
Pengagregatan Bersyarat dengan SUM dan COUNT dalam MySQL
Apabila bekerja dengan pangkalan data hubungan, selalunya perlu melakukan pengagregatan bersyarat untuk meringkaskan berdasarkan data pada kriteria tertentu. MySQL menawarkan beberapa cara untuk mencapai ini, termasuk penggunaan pernyataan IF() dan CASE.
Menggunakan Pernyataan IF()
Dalam contoh anda, anda mencuba untuk menggunakan pernyataan IF() untuk mengira kiraan baris yang jenisnya sama dengan 1. Walau bagaimanapun, MySQL tidak membenarkan penggunaan pernyataan IF() secara agregat fungsi seperti SUM dan COUNT. Ini kerana IF() mengembalikan nilai skalar, manakala fungsi agregat memerlukan ungkapan lajur sebagai input.
Menggunakan Penyata KES
Untuk melaksanakan pengagregatan bersyarat, anda boleh gunakan pernyataan CASE. Pernyataan CASE membolehkan anda menentukan berbilang syarat dan mengembalikan nilai yang berbeza berdasarkan syarat tersebut.
Pertanyaan berikut menggunakan pernyataan CASE untuk mengira kiraan baris yang jenisnya sama dengan 1:
SELECT COUNT(id), SUM(hour) AS totHour, SUM(CASE WHEN kind = 1 THEN 1 ELSE 0 END) AS countKindOne FROM your_table;
Dalam pertanyaan ini:
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Pengagregatan Bersyarat dengan SUM dan COUNT dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!