Verwaltung von Null-Terminzählungen in SQL-Aggregationen
Standard-SQL COUNT
-Aggregationen können Personen mit null Terminen übersehen. Die Lösung besteht darin, äußere Verknüpfungen zu verwenden, um diese Einträge mit Nullanzahl einzuschließen.
Lassen Sie uns veranschaulichen:
Diese Abfrage zählt Termine pro Person, lässt jedoch diejenigen ohne Termine aus:
<code class="language-sql">SELECT person_id, COUNT(person_id) AS appointment_count FROM appointment GROUP BY person_id;</code>
Um Personen ohne Termine einzubeziehen, verwenden Sie ein LEFT JOIN
mit der person
-Tabelle als treibende Tabelle:
<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>
Dieser LEFT JOIN
gibt NULL
für appointment.person_id
zurück, für den keine Termine vorhanden sind. COUNT
ignoriert NULL
Werte und meldet korrekterweise null Termine für diese Personen.
Dieser Ansatz basiert auf dem Verständnis der Funktionsweise von Outer Joins. Ein LEFT JOIN
stellt sicher, dass alle Zeilen aus der linken Tabelle (in diesem Fall person
) enthalten sind, auch wenn es keine passende Zeile in der rechten Tabelle (appointment
) gibt.
Weitere Informationen zu Outer Joins und der Handhabung von NULL
Werten finden Sie in Ressourcen wie:
Das obige ist der detaillierte Inhalt vonWie kann ich Null-Termin-Ergebnisse in SQL COUNT-Aggregationen einbeziehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!