Heim >Datenbank >MySQL-Tutorial >Wie kombiniere ich mehrere SQL SELECT-Anweisungen, um Aufgaben und verspätete Aufgaben zu zählen?

Wie kombiniere ich mehrere SQL SELECT-Anweisungen, um Aufgaben und verspätete Aufgaben zu zählen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-08 22:29:44158Durchsuche

How to Combine Multiple SQL SELECT Statements to Count Tasks and Late Tasks?

Kombinieren mehrerer SQL-SELECT-Anweisungen: Ein praktisches Beispiel

Diese Anleitung zeigt, wie Sie die Ergebnisse mehrerer SQL-SELECT-Anweisungen effizient in einer einzigen, umfassenden Tabelle kombinieren. Als Beispiel verwenden wir eine Aufgabenverwaltungsdatenbank. Jeder Aufgabendatensatz enthält Details wie Fristen, Tage bis zum Abgabetermin (PALT) und Alter (Tage seit der Erstellung). Ziel ist es, einen Bericht zu erstellen, der für jede Person die Gesamtzahl ihrer Aufgaben und die Anzahl der überfälligen Aufgaben anzeigt.

Einzelne Abfragen zum Zählen der Gesamtaufgaben und verspäteten Aufgaben könnten wie folgt aussehen:

<code class="language-sql">SELECT ks, COUNT(*) AS "Total Tasks" FROM Table GROUP BY ks;</code>
<code class="language-sql">SELECT ks, COUNT(*) AS "Overdue Tasks" FROM Table WHERE Age > Palt GROUP BY ks;</code>

Um diese Ergebnisse zusammenzuführen, verwenden wir ein LEFT JOIN. Dadurch wird sichergestellt, dass alle Personen aus der gesamten Aufgabenanzahl einbezogen werden, auch wenn sie keine überfälligen Aufgaben haben.

<code class="language-sql">SELECT t1.ks, t1."Total Tasks", COALESCE(t2."Overdue Tasks", 0) AS "Overdue Tasks"
FROM 
    (SELECT ks, COUNT(*) AS "Total Tasks" FROM Table GROUP BY ks) t1
LEFT JOIN
    (SELECT ks, COUNT(*) AS "Overdue Tasks" FROM Table WHERE Age > Palt GROUP BY ks) t2
ON t1.ks = t2.ks;</code>

Die Funktion COALESCE behandelt Fälle, in denen eine Person keine überfälligen Aufgaben hat (was zu NULL aus LEFT JOIN führt) und ersetzt NULL aus Gründen der Klarheit durch 0. In der Abschlusstabelle werden ks (Personen-ID), „Gesamtaufgaben“ und „Überfällige Aufgaben“ angezeigt. Das LEFT JOIN stellt sicher, dass alle Personen aufgelistet werden, unabhängig davon, ob sie überfällige Aufgaben haben.

Das obige ist der detaillierte Inhalt vonWie kombiniere ich mehrere SQL SELECT-Anweisungen, um Aufgaben und verspätete Aufgaben zu zählen?. 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