Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Memasukkan Kiraan Sifar dalam Agregat SQL COUNT?

Bagaimanakah Saya Boleh Memasukkan Kiraan Sifar dalam Agregat SQL COUNT?

Linda Hamilton
Lepaskan: 2025-01-08 18:22:42
asal
345 orang telah melayarinya

How Can I Include Zero Counts in SQL COUNT Aggregates?

Mengendalikan Kiraan Pelantikan Sifar dalam SQL COUNT Agregat

Fungsi

SQL COUNT kadangkala menghilangkan nilai sifar daripada hasil agregat. Panduan ini menunjukkan cara memastikan kiraan sifar disertakan semasa mengira rekod.

Pertimbangkan dua jadual: person dan appointment. Seseorang boleh mempunyai berbilang janji temu dan jadual appointment termasuk lajur person_id.

Masalahnya:

Pertanyaan GROUP BY mudah mungkin terlepas orang tanpa janji temu:

<code class="language-sql">SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;</code>
Salin selepas log masuk

Penyelesaian: TINGGALKAN SERTAI

Untuk memasukkan orang yang mempunyai 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>
Salin selepas log masuk

Penjelasan:

  • LEFT JOIN memastikan semua baris daripada jadual person (jadual kiri) disertakan dalam keputusan, tanpa mengira padanan dalam jadual appointment.
  • Jika seseorang tidak mempunyai janji temu, COUNT(a.person_id) mengembalikan 0 (bukan NULL, seperti yang dilakukan dengan COUNT(*)).
  • GROUP BY p.person_id mengumpulkan hasil mengikut ID orang, dengan tepat menggambarkan kiraan janji temu sifar.

Pendekatan ini menjamin kiraan yang lengkap, termasuk individu yang tiada janji temu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Kiraan Sifar dalam Agregat SQL COUNT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan