MySQL: Pengagregatan Bersyarat dengan 'SUM IF' dan 'COUNT IF'
Fungsi pengagregatan seperti SUM dan COUNT adalah penting untuk meringkaskan data dalam MySQL. Walau bagaimanapun, bagaimana jika anda perlu menggunakan syarat pada pengagregatan anda? Di sinilah pengagregatan bersyarat memainkan peranan.
Pertimbangkan senario di mana anda mempunyai jadual dengan dua lajur: 'jam' dan 'jenis'. Anda ingin mengira dan menjumlahkan nilai 'jam' berdasarkan sama ada nilai 'jenis' yang sepadan ialah 1. Fungsi pengagregatan tradisional sahaja tidak dapat menangani perkara ini.
Untuk menyelesaikan masalah ini, MySQL menawarkan pernyataan CASE, yang membolehkan anda untuk menentukan syarat tersuai untuk pengagregatan. Berikut ialah pertanyaan yang disemak menggunakan pernyataan CASE:
SELECT count(id), SUM(hour) as totHour, SUM(case when kind = 1 then 1 else 0 end) as countKindOne
Dalam pertanyaan ini, pernyataan CASE menyemak sama ada nilai 'jenis' adalah sama dengan 1. Jika benar, ia mengembalikan 1; jika tidak, ia mengembalikan 0. Hasilnya kemudian dijumlahkan menggunakan fungsi SUM() untuk mengira kejadian 'jenis' bersamaan dengan 1.
Dengan menggunakan pengagregatan bersyarat dengan pernyataan CASE, anda boleh menapis dan mengagregat dengan berkesan data anda berdasarkan kriteria tertentu. Teknik berkuasa ini membuka pelbagai kemungkinan untuk analisis dan manipulasi data dalam MySQL.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan pengagregatan bersyarat dalam MySQL untuk mengira dan menjumlahkan nilai berdasarkan kriteria tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!