Heim > Datenbank > MySQL-Tutorial > Wie kann ich Nullzählungen in SQL COUNT-Aggregate einbeziehen?

Wie kann ich Nullzählungen in SQL COUNT-Aggregate einbeziehen?

Linda Hamilton
Freigeben: 2025-01-08 18:22:42
Original
345 Leute haben es durchsucht

How Can I Include Zero Counts in SQL COUNT Aggregates?

Verwaltung von Null-Termin-Zählungen in SQL COUNT-Aggregaten

SQLs COUNT-Funktion lässt manchmal Nullwerte aus aggregierten Ergebnissen weg. In dieser Anleitung wird gezeigt, wie Sie sicherstellen können, dass beim Zählen von Datensätzen Nullzählungen berücksichtigt werden.

Betrachten Sie zwei Tabellen: person und appointment. Eine Person kann mehrere Termine haben und die appointment-Tabelle enthält eine person_id-Spalte.

Das Problem:

Eine einfache GROUP BY Abfrage könnte Personen ohne Termin übersehen:

<code class="language-sql">SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;</code>
Nach dem Login kopieren

Die Lösung: LEFT JOIN

Um Personen ohne Termine einzubeziehen, verwenden Sie ein 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>
Nach dem Login kopieren

Erklärung:

  • Das LEFT JOIN stellt sicher, dass alle Zeilen aus der person-Tabelle (der linken Tabelle) im Ergebnis enthalten sind, unabhängig von Übereinstimmungen in der appointment-Tabelle.
  • Wenn eine Person keine Termine hat, gibt COUNT(a.person_id) 0 zurück (nicht NULL, wie es bei COUNT(*) der Fall wäre).
  • GROUP BY p.person_id gruppiert die Ergebnisse nach Personen-ID und spiegelt so genau die Anzahl der Null-Termine wider.

Dieser Ansatz garantiert eine vollständige Zählung, einschließlich Personen ohne zugehörige Termine.

Das obige ist der detaillierte Inhalt vonWie kann ich Nullzählungen in SQL COUNT-Aggregate einbeziehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage