Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengira Baris Memenuhi Syarat Khusus Dalam Fungsi COUNT()?
Pengiraan Bersyarat Dalam Fungsi COUNT()
Anda boleh memasukkan syarat terus ke dalam fungsi COUNT()
anda. Ini amat berguna apabila anda perlu mengira baris yang memenuhi kriteria berbeza dalam satu pertanyaan SQL, mengelakkan keperluan untuk berbilang pertanyaan atau subkueri. Contohnya, mengira bilangan "Pengurus" dan "Pekerja" dalam satu penyata SELECT
.
Kuncinya ialah menggunakan ungkapan CASE
dalam fungsi COUNT()
. COUNT()
hanya mengira nilai bukan NULL. Oleh itu:
<code class="language-sql">SELECT COUNT(CASE WHEN Position = 'Manager' THEN 1 ELSE NULL END) AS ManagerCount FROM ...</code>
Ini hanya mengira baris dengan Position
ialah 'Pengurus'. ELSE NULL
memastikan baris yang tidak memenuhi syarat tidak dikira.
Sebagai alternatif, anda boleh menggunakan SUM()
:
<code class="language-sql">SELECT SUM(CASE WHEN Position = 'Manager' THEN 1 ELSE 0 END) AS ManagerCount FROM ...</code>
Ini mencapai hasil yang sama; SUM()
menambah 1 untuk setiap 'Pengurus' dan 0 untuk semua yang lain. Pendekatan ini boleh menjadi lebih cekap sedikit dalam beberapa sistem pangkalan data. Kedua-dua kaedah mengelakkan keperluan untuk klausa WHERE
yang berasingan, menjadikannya ideal untuk mengira berbilang kategori serentak.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Baris Memenuhi Syarat Khusus Dalam Fungsi COUNT()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!