Agregat KIRAAN SQL: Mengendalikan Keputusan Sifar dengan Gabungan
Pertanyaan pangkalan data selalunya memerlukan fungsi agregat seperti COUNT untuk memasukkan hasil sifar untuk kesempurnaan. Ini penting apabila menangani senario yang ketiadaan data adalah penting.
Mari kita gambarkan ini dengan contoh. Katakan kita mempunyai dua jadual: person
dan appointment
. Jadual appointment
mengandungi kunci asing person_id
yang merujuk kepada jadual person
. Matlamat kami adalah untuk mengira bilangan janji temu bagi setiap orang, termasuk mereka yang tiada janji temu langsung.
KIRAAN mudah pada jadual appointment
hanya akan menunjukkan hasil untuk orang yang mempunyai janji temu. Untuk memasukkan sifar, kita memerlukan LEFT JOIN
.
Pertanyaan SQL:
<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>
Penjelasan:
LEFT JOIN
memastikan semua baris daripada jadual person
(disebut sebagai p
) disertakan dalam set hasil. Jika seseorang tidak mempunyai entri yang sepadan dalam jadual appointment
(disebut sebagai a
), a.person_id
akan menjadi NULL. Fungsi COUNT(a.person_id)
bijak mengendalikan perkara ini: ia hanya mengira nilai bukan NULL, dengan berkesan memberikan kiraan 0 untuk orang tanpa janji temu. Pengumpulan mengikut p.person_id
memastikan kami mendapat kiraan berasingan untuk setiap orang.
Pendekatan ini menjamin pelaporan yang tepat, walaupun data jarang atau apabila ketiadaan data bermakna. Ia merupakan teknik yang berharga untuk analisis data yang komprehensif.
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Keputusan Sifar dalam COUNT Agregat Menggunakan SQL Joins?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!