Gunakan fungsi SQL COUNT() untuk mengira bilangan baris yang memenuhi syarat tertentu
Fungsi agregat COUNT() dalam SQL biasanya mengira semua nilai bukan nol dalam lajur. Tetapi bagaimana jika anda hanya mahu mengira bilangan baris yang memenuhi kriteria tertentu? Sebagai contoh, hanya kira bilangan pekerja dengan tajuk "Pengurus" dalam lajur kerja.
Walaupun klausa WHERE menyediakan cara yang mudah untuk menapis baris, ia mungkin tidak mencukupi dalam situasi di mana anda perlu mengira kedua-dua pengurus dan pekerja lain. Pada masa ini, ungkapan bersyarat dalam fungsi agregat COUNT() berguna.
Gunakan ungkapan bersyarat dalam COUNT()
Anda boleh memanfaatkan ciri COUNT() untuk mengira hanya nilai bukan nol dan bukannya menggunakan klausa WHERE. Dengan menggunakan ungkapan bersyarat, anda boleh membuat pernyataan kes yang menilai lajur Kedudukan dan memberikan nilai tertentu berdasarkan syarat.
Contoh 1: Menggunakan Kes dan Kiraan()
<code class="language-sql">select count(case Position when 'Manager' then 1 else null end) from ...</code>
Dalam pertanyaan ini, penyataan kes menilai sama ada lajur Kedudukan adalah sama dengan 'Pengurus'. Jika benar, nilai yang diberikan ialah 1 jika tidak, nilai yang diberikan adalah batal. Fungsi agregat COUNT() kemudian menjumlahkan semua nilai bukan nol dalam ungkapan kes untuk mendapatkan bilangan baris pengurus.
Contoh 2: Menggunakan Kes dan Jumlah()
Sebagai alternatif, anda boleh menggunakan fungsi agregat Sum() dan ungkapan bersyarat yang serupa:
<code class="language-sql">select sum(case Position when 'Manager' then 1 else 0 end) from ...</code>
Kaedah ini juga boleh mendapatkan bilangan baris pengurus kerana fungsi agregat Sum() menjumlahkan nilai yang ditentukan dalam ungkapan kes dan mengira nilai bukan sifar secara berkesan (iaitu baris dengan Kedudukan sama dengan 'Pengurus') .
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Baris Memenuhi Syarat Khusus dalam SQL Menggunakan COUNT()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!