Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mencapai Fungsi 'SUM IF' dan 'COUNT IF' dalam MySQL dengan Pengagregatan Bersyarat?

Bagaimana untuk Mencapai Fungsi 'SUM IF' dan 'COUNT IF' dalam MySQL dengan Pengagregatan Bersyarat?

Mary-Kate Olsen
Lepaskan: 2024-11-13 14:32:02
asal
380 orang telah melayarinya

How to Achieve 'SUM IF' and 'COUNT IF' Functionality in MySQL with Conditional Aggregation?

MySQL Conditional Agregation: Membuka kunci Keupayaan 'SUM IF' dan 'COUNT IF'

Dalam MySQL, melaksanakan pengagregatan bersyarat, seperti menjumlahkan atau mengira nilai berdasarkan syarat tertentu, boleh dicapai melalui penggunaan penyata CASE. Ini membolehkan anda menggunakan kriteria secara fleksibel pada operasi pengagregatan anda.

Pertimbangkan senario berikut: anda mempunyai jadual dengan lajur 'jam' dan 'jenis' (yang boleh menyimpan nilai 1, 2 atau 3). Anda ingin mengira bilangan baris, mengira jumlah jam dan menentukan kiraan baris yang 'jenis' bersamaan dengan 1.

Pada mulanya, anda boleh mencuba pertanyaan berikut:

SELECT count(id), SUM(hour) as totHour, SUM( IF ( kind = 1, 1, 0 ) ) as countKindOne
Salin selepas log masuk

atau

SELECT count(id), SUM(hour) as totHour, COUNT( IF ( kind = 1 ) ) as countKindOne
Salin selepas log masuk

Walau bagaimanapun, pertanyaan ini mungkin akan mengakibatkan ralat. Untuk menyelesaikan masalah ini, anda perlu menggunakan pernyataan CASE dalam operasi pengagregatan:

SELECT count(id), 
    SUM(hour) as totHour, 
    SUM(case when kind = 1 then 1 else 0 end) as countKindOne
Salin selepas log masuk

Dalam pernyataan CASE ini, kami menyatakan bahawa jika nilai dalam lajur 'jenis' ialah 1, kami mengembalikan 1, jika tidak. kita kembalikan 0. Ini membolehkan kita mengira baris dengan syarat 'jenis' bersamaan dengan 1.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Fungsi 'SUM IF' dan 'COUNT IF' dalam MySQL dengan Pengagregatan Bersyarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan