Konsolidieren von Daten aus mehreren SQL-Abfragen
Datenbankverwaltung erfordert oft die Integration von Daten aus verschiedenen Quellen oder Tabellen. Eine gängige Methode ist die Verwendung von SQL-JOIN
-Operationen, um Ergebnisse aus mehreren SELECT
-Anweisungen zu kombinieren.
Dieses Beispiel zeigt, wie Daten aus zwei Abfragen kombiniert werden: eine, die die Gesamtaufgaben zählt, und eine andere, die überfällige Aufgaben für jede einzelne Person zählt. Ziel ist es, eine Tabelle zu erstellen, die die Anzahl der Aufgaben und die Anzahl der überfälligen Aufgaben jedes Einzelnen zeigt.
Die erste Abfrage berechnet die Gesamtanzahl der Aufgaben jedes Einzelnen:
<code class="language-sql">SELECT ks, COUNT(*) AS "Total Tasks" FROM Table GROUP BY ks</code>
Dadurch entsteht eine Tabelle mit ks
(individuelle Kennung) und Total Tasks
.
Die zweite Abfrage zählt die überfälligen Aufgaben jedes Einzelnen:
<code class="language-sql">SELECT ks, COUNT(*) AS "Overdue Tasks" FROM Table WHERE Age > Palt GROUP BY ks</code>
Dadurch wird eine Tabelle mit ks
und Overdue Tasks
generiert.
Um diese Ergebnisse zusammenzuführen, wird ein LEFT JOIN
verwendet. Dadurch wird sichergestellt, dass alle Personen aus der ersten Abfrage einbezogen werden, auch wenn sie keine überfälligen Aufgaben haben.
Die kombinierte Abfrage lautet:
<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>
COALESCE
behandelt Fälle, in denen einzelnen Personen überfällige Aufgaben fehlen, und ersetzt NULL
durch 0.
In der Abschlusstabelle werden ks
, Total Tasks
und Overdue Tasks
für jede Person angezeigt.
Das obige ist der detaillierte Inhalt vonWie kombiniere ich die Anzahl der Aufgaben und verspäteten Aufgaben für Einzelpersonen, die SQL-Joins verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!