Heim > Datenbank > MySQL-Tutorial > Wie kann ich Null-Termin-Ergebnisse in SQL COUNT-Aggregationen einbeziehen?

Wie kann ich Null-Termin-Ergebnisse in SQL COUNT-Aggregationen einbeziehen?

DDD
Freigeben: 2025-01-08 18:26:42
Original
920 Leute haben es durchsucht

How Can I Include Zero-Appointment Results in SQL COUNT Aggregations?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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:

SQLZoo: Arbeiten mit NULL

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage