Ergebnisse der SELECT-Anweisung in einer einzigen Abfrage kombinieren
Bei der Arbeit mit Datenbanken ist es äußerst wertvoll, Daten aus mehreren Datenquellen zur Analyse zu kombinieren. Dies zu erreichen ist jedoch manchmal mit Herausforderungen verbunden. In diesem Beispiel haben wir zwei separate SELECT-Anweisungen, von denen jede spezifische Informationen aus der Aufgabendatenbank abruft.
Die erste SELECT-Anweisung zählt die Anzahl der jeder Person zugewiesenen Aufgaben:
<code class="language-sql">SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks</code>
Die zweite SELECT-Anweisung identifiziert die Anzahl überfälliger Aufgaben für jede Person (Aufgaben, deren Alter Palt überschreitet):
<code class="language-sql">SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks</code>
Unser Ziel ist es, die Ergebnisse dieser beiden Abfragen in einer Tabelle zusammenzufassen, die die Kennung (ks) jeder Person, die Gesamtzahl ihrer Aufgaben (# Aufgaben) und die Anzahl ihrer überfälligen Aufgaben (# Verspätet) enthält. Spalte.
Eine Möglichkeit, dies zu erreichen, ist die Verwendung der JOIN-Operation. Insbesondere ermöglicht uns LEFT JOIN, alle Zeilen aus der ersten Tabelle (t1) und die entsprechenden Zeilen aus der zweiten Tabelle (t2) einzubeziehen, wenn die Join-Schlüssel (ks) übereinstimmen. Wenn in t2 keine entsprechende Zeile vorhanden ist, enthält das Ergebnis NULL-Werte. Dadurch wird sichergestellt, dass auch Personen ohne überfällige Aufgaben in den Endergebnissen erscheinen.
Die folgende Abfrage implementiert LEFT JOIN:
<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 COALESCE-Funktion verarbeitet potenzielle NULL-Werte in [# Late] und stellt sicher, dass ein 0-Wert zurückgegeben wird. Dadurch wird die gewünschte Ausgabetabelle erstellt:
<code>KS # Tasks # Late person1 7 1 person2 3 1 person3 2 0 </code>
Das obige ist der detaillierte Inhalt vonWie kann ich zwei SELECT-Anweisungen in einer einzigen Abfrage kombinieren, um die Anzahl der Aufgaben und verspäteten Aufgaben anzuzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!