Effiziente Datenanalyse: Kombination mehrerer SELECT-Anweisungen
Datenbankabfragen erfordern häufig die Kombination von Daten aus mehreren Quellen oder die Anwendung mehrerer Transformationen. Das Zusammenführen der Ausgaben mehrerer SELECT
-Anweisungen bietet eine leistungsstarke Möglichkeit, Daten zu manipulieren und wertvolle Erkenntnisse zu gewinnen.
Stellen Sie sich eine Aufgabendatenbank vor, in der jeder Datensatz eine Aufgabe darstellt, einschließlich einer Frist (PALT) und dem Alter der Aufgabe (Tage seit Beginn). Eine Aufgabe ist verspätet, wenn ihr Alter ihren PALT überschreitet. Unser Ziel ist es, eine Übersichtstabelle zu erstellen, die die Gesamtanzahl der Aufgaben jeder Person und die Anzahl der überfälligen Aufgaben zeigt.
Dies kann durch zwei separate SELECT
Anweisungen erreicht werden:
SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks;
Diese Abfrage zählt die Gesamtaufgaben für jede Person (gekennzeichnet durch ks
).
SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks;
Diese Abfrage zählt die Anzahl der verspäteten Aufgaben für jede Person.
Um diese zu kombinieren, verwenden wir ein LEFT JOIN
:
SELECT t1.ks, t1.'# Tasks', COALESCE(t2.'# Late', 0) AS '# Late' FROM (SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks) t1 LEFT JOIN (SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks) t2 ON t1.ks = t2.ks;
Dies führt die Ergebnisse basierend auf der Spalte ks
zusammen. COALESCE
behandelt Fälle, in denen eine Person keine verspäteten Aufgaben hat, und ersetzt NULL
durch 0.
Die Abschlusstabelle zeigt ks
(Personen-ID), # Tasks
(Gesamtaufgaben) und # Late
(Anzahl verspäteter Aufgaben oder 0, wenn keine). Dies ermöglicht eine gründliche Analyse der einzelnen Arbeitsbelastungen und des Prozentsatzes überfälliger Aufgaben.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere SELECT-Anweisungen kombinieren, um den Abschluss und die Verspätung einer Aufgabe zu analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!