Kombinieren von SELECT-Abfragen für eine umfassende Aufgabenanalyse
Datenbankabfragen erfordern häufig die Kombination von Daten aus mehreren Quellen, um ein vollständiges Bild zu erhalten. Dabei werden die Ergebnisse mehrerer SELECT
-Anweisungen zusammengefügt – eine entscheidende Technik in vielen Programmierkontexten.
Stellen Sie sich ein Szenario mit einer Aufgabendatenbank mit Fristen und einzelnen Aufgaben vor. Das Ziel besteht darin, einen Bericht zu erstellen, der jede einzelne Person, ihre Gesamtaufgabenanzahl und die Anzahl überfälliger Aufgaben zeigt.
Dies kann durch zwei separate SELECT
-Abfragen erreicht werden: eine zum Zählen von Aufgaben pro Person und eine weitere zum Zählen überfälliger Aufgaben (wobei Age
die vordefinierte Frist PALT
überschreitet). Um diese Informationen zu konsolidieren, wird ein LEFT JOIN
verwendet. Dadurch wird sichergestellt, dass alle Personen aus der ersten Abfrage einbezogen werden und die Anzahl der überfälligen Aufgaben aus der zweiten Abfrage übereinstimmt. Der Join basiert auf der Spalte ks
(individuelle Kennung).
Die kombinierte Abfrage lautet wie folgt:
<code class="language-sql">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;</code>
Die Ausgabe ist eine Tabelle, in der die ks
jeder Person, ihre Gesamtaufgabenanzahl (# Tasks
) und die Anzahl überfälliger Aufgaben (# Late
) aufgeführt sind. COALESCE
behandelt Fälle, in denen eine Person keine überfälligen Aufgaben hat, und weist 0
einen # Late
-Wert zu. Dadurch erhalten Sie eine umfassende und genaue Zusammenfassung.
Das obige ist der detaillierte Inhalt vonWie kombiniere ich zwei SELECT-Abfragen, um Aufgaben und verspätete Aufgaben für jeden Einzelnen zu zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!