Verarbeitung von Nullzählungen in SQL COUNT-Aggregaten mit Outer Joins
Die-Aggregatfunktion von COUNT
SQL zählt normalerweise Nicht-Null-Werte und lässt Entitäten mit Null-Ergebnissen aus. Um diese Null-Anzahl-Entitäten einzuschließen, verwenden Sie einen äußeren Join. Im Gegensatz zu inneren Verknüpfungen behalten äußere Verknüpfungen alle Zeilen einer oder beider Tabellen bei, auch wenn es in der anderen Tabelle keine Übereinstimmung gibt.
Lassen Sie uns dies anhand von zwei Tabellen veranschaulichen: person
und appointment
. appointment
verlinkt zu person
über person_id
. Um Termine pro Person zu zählen, einschließlich solcher mit null Terminen, verwenden Sie ein LEFT JOIN
:
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;
Dadurch LEFT JOIN
wird sichergestellt, dass alle Zeilen aus der person
-Tabelle (mit dem Alias p
) enthalten sind. Wenn eine Person keine Termine hat, ist a.person_id
NULL und COUNT(a.person_id)
gibt 0 für diese Person zurück. Dies ermöglicht eine vollständige Zählung aller Personen und spiegelt genau die Fälle wider, in denen kein Termin vereinbart wurde. Die GROUP BY
-Klausel stellt sicher, dass die Zählung pro Person aggregiert wird.
Das obige ist der detaillierte Inhalt vonWie füge ich mithilfe von Outer Joins Nullergebnisse in SQL COUNT-Aggregate ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!