Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggunakan COUNT() untuk Mengira Baris Berdasarkan Syarat?

Bagaimanakah Saya Boleh Menggunakan COUNT() untuk Mengira Baris Berdasarkan Syarat?

Barbara Streisand
Barbara Streisandasal
2025-01-11 08:27:41311semak imbas

How Can I Use COUNT() to Count Rows Based on a Condition?

Pengiraan bersyarat dalam fungsi COUNT()

Dalam sesetengah kes, anda mungkin perlu mengira baris berdasarkan kriteria tertentu dan bukannya mendapatkan jumlah kiraan. Sebagai contoh, kita mungkin mahu mengira hanya baris yang mempunyai nilai tertentu dalam lajur tertentu.

Menggunakan fungsi COUNT(), anda boleh menentukan syarat untuk menapis baris untuk pengiraan. Ini boleh dicapai dengan menggunakan ungkapan CASE bersama-sama dengan fungsi COUNT(), seperti yang ditunjukkan dalam coretan kod berikut:

<code class="language-sql">select count(case Position when 'Manager' then 1 else null end)
from ...</code>

Dalam contoh ini, kami hanya mengira baris dengan nilai lajur 'Kedudukan' ialah 'Pengurus'. Ungkapan CASE menilai lajur 'Kedudukan' setiap baris. Mengembalikan 1 jika nilai lajur sepadan dengan 'Pengurus' jika tidak, mengembalikan null. Ini memastikan bahawa hanya baris yang mengandungi 'Pengurus' dalam lajur 'Kedudukan' dikira.

Sebagai alternatif, anda boleh menggunakan fungsi SUM() dengan cara yang sama:

<code class="language-sql">select sum(case Position when 'Manager' then 1 else 0 end)
from ...</code>

Kaedah ini juga menggunakan ungkapan CASE untuk menapis baris. Walau bagaimanapun, untuk baris yang tidak sepadan, ia mengembalikan 0 dan bukannya nol. Fungsi SUM() kemudian mengira jumlah nilai ini, memberikan bilangan baris yang mengandungi 'Pengurus' dalam lajur 'Kedudukan'.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan COUNT() untuk Mengira Baris Berdasarkan Syarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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