Heim >Datenbank >MySQL-Tutorial >Wie füge ich mithilfe von Outer Joins Nullergebnisse in SQL COUNT-Aggregate ein?

Wie füge ich mithilfe von Outer Joins Nullergebnisse in SQL COUNT-Aggregate ein?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-08 18:17:43366Durchsuche

How to Include Zero Results in SQL COUNT Aggregates Using Outer Joins?

Verarbeitung von Nullzählungen in SQL COUNT-Aggregaten mit Outer Joins

Die

-Aggregatfunktion von COUNTSQL 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:

<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>

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!

Stellungnahme:
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