Mengendalikan Kiraan Sifar dalam Agregat SQL COUNT dengan Sambungan Luar
Fungsi agregat COUNT
SQL biasanya mengira nilai bukan nol, mengetepikan entiti dengan hasil sifar. Untuk memasukkan entiti kiraan sifar ini, gunakan gabungan luar. Cantuman luar, tidak seperti cantuman dalam, mengekalkan semua baris daripada satu atau kedua-dua jadual, walaupun apabila tiada padanan dalam jadual lain.
Mari kita menggambarkan dengan dua jadual: person
dan appointment
. appointment
pautan ke person
melalui person_id
. Untuk mengira janji temu setiap orang, termasuk janji temu sifar, gunakan LEFT JOIN
:
<code class="language-sql">SELECT p.person_id, COUNT(a.person_id) AS number_of_appointments FROM person p LEFT JOIN appointment a ON p.person_id = a.person_id GROUP BY p.person_id;</code>
Ini LEFT JOIN
memastikan semua baris daripada jadual person
(disebut sebagai p
) disertakan. Jika seseorang tidak mempunyai janji temu, a.person_id
akan menjadi NULL dan COUNT(a.person_id)
akan mengembalikan 0 untuk orang itu. Ini menyediakan kiraan lengkap untuk semua orang, dengan tepat menggambarkan kes pelantikan sifar. Klausa GROUP BY
memastikan kiraan diagregatkan setiap orang.
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Keputusan Sifar dalam SQL COUNT Agregat Menggunakan Outer Joins?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!