Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memasukkan Keputusan Sifar Pelantikan dalam Pengagregatan SQL COUNT?

Bagaimanakah Saya Boleh Memasukkan Keputusan Sifar Pelantikan dalam Pengagregatan SQL COUNT?

DDD
DDDasal
2025-01-08 18:26:421015semak imbas

How Can I Include Zero-Appointment Results in SQL COUNT Aggregations?

Mengendalikan Kiraan Pelantikan Sifar dalam Agregasi SQL

Pengagregatan

SQL standard COUNT boleh terlepas individu dengan janji temu sifar. Penyelesaiannya melibatkan penggunaan cantuman luar untuk memasukkan entri kiraan sifar ini.

Mari kita gambarkan:

Pertanyaan ini mengira janji temu setiap orang tetapi mengetepikan janji temu tanpa janji:

<code class="language-sql">SELECT person_id, COUNT(person_id) AS appointment_count
FROM appointment
GROUP BY person_id;</code>

Untuk memasukkan individu dengan janji temu sifar, gunakan LEFT JOIN dengan jadual person sebagai jadual pemanduan:

<code class="language-sql">SELECT p.person_id, COUNT(a.person_id) AS appointment_count
FROM person p
LEFT JOIN appointment a ON p.person_id = a.person_id
GROUP BY p.person_id;</code>

Ini LEFT JOIN mengembalikan NULL untuk appointment.person_id di mana tiada janji temu wujud. COUNT mengabaikan nilai NULL, melaporkan dengan betul sifar janji temu untuk individu tersebut.

Pendekatan ini bergantung pada pemahaman cara gabungan luar berfungsi. A LEFT JOIN memastikan semua baris dari jadual kiri (dalam kes ini, person) disertakan, walaupun tiada baris yang sepadan dalam jadual kanan (appointment).

Untuk menyelam lebih mendalam ke dalam sambung luar dan pengendalian nilai NULL, rujuk sumber seperti:

SQLZoo: Bekerja dengan NULL

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Keputusan Sifar Pelantikan dalam Pengagregatan SQL COUNT?. 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