SQL UNION
On November 16, 2021 by adminBeginnen Sie hier? Diese Lektion ist Teil eines ausführlichen Tutorials zur Verwendung von SQL für die Datenanalyse. Schauen Sie sich den Anfang an.
In dieser Lektion behandeln wir:
- Der SQL UNION-Operator
- Praxisprobleme
Der SQL UNION-Operator
SQL-Joins erlauben es Ihnen, zwei Datensätze nebeneinander zu kombinieren, aber UNION
erlaubt es Ihnen, einen Datensatz über den anderen zu stapeln. Anders ausgedrückt: Mit UNION
können Sie zwei separate SELECT
-Anweisungen schreiben und die Ergebnisse der einen Anweisung in derselben Tabelle wie die Ergebnisse der anderen Anweisung anzeigen lassen.
Probieren wir es mit den Investitionsdaten von Crunchbase aus, die für diese Lektion in zwei Tabellen aufgeteilt wurden. Die folgende Abfrage zeigt alle Ergebnisse aus dem ersten Teil der Abfrage und dann alle Ergebnisse aus dem zweiten Teil in derselben Tabelle an:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION SELECT * FROM tutorial.crunchbase_investments_part2
Beachten Sie, dass UNION
nur eindeutige Werte anfügt. Genauer gesagt, wenn Sie UNION
verwenden, wird der Datensatz angehängt, und alle Zeilen in der angehängten Tabelle, die mit den Zeilen in der ersten Tabelle genau identisch sind, werden gelöscht. Wenn Sie alle Werte aus der zweiten Tabelle anhängen möchten, verwenden Sie UNION ALL
. Sie werden UNION ALL
wahrscheinlich viel häufiger verwenden als UNION
. In diesem speziellen Fall gibt es keine doppelten Zeilen, so dass UNION ALL
zu den gleichen Ergebnissen führt:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION ALL SELECT * FROM tutorial.crunchbase_investments_part2
SQL hat strenge Regeln für das Anhängen von Daten:
- Beide Tabellen müssen die gleiche Anzahl von Spalten haben
- Die Spalten müssen die gleichen Datentypen in der gleichen Reihenfolge wie die erste Tabelle haben
Die Spaltennamen müssen zwar nicht unbedingt gleich sein, aber Sie werden feststellen, dass sie es normalerweise sind. Das liegt daran, dass in den meisten Fällen, in denen Sie UNION
verwenden möchten, verschiedene Teile desselben Datensatzes zusammengefügt werden müssen (wie in diesem Fall).
Da Sie zwei separate SELECT
-Anweisungen schreiben, können Sie sie vor dem Anhängen unterschiedlich behandeln. Beispielsweise können Sie sie mit verschiedenen WHERE
-Klauseln unterschiedlich filtern.
Verbessern Sie Ihre SQL-Kenntnisse
Praxisaufgabe
Schreiben Sie eine Abfrage, die die beiden obigen crunchbase_investments
-Datensätze (einschließlich doppelter Werte) anfügt. Filtern Sie den ersten Datensatz auf Unternehmen, deren Namen mit dem Buchstaben „T“ beginnen, und filtern Sie den zweiten Datensatz auf Unternehmen, deren Namen mit „M“ beginnen (beide ohne Berücksichtigung der Groß- und Kleinschreibung). Schließen Sie nur die Spalten company_permalink
, company_name
und investor_name
ein.
Probieren Sie es aus Siehe die Antwort
Für eine etwas größere Herausforderung:
Praxisproblem
Schreiben Sie eine Abfrage, die 3 Spalten anzeigt. Die erste gibt an, aus welchem Datensatz (Teil 1 oder 2) die Daten stammen, die zweite zeigt den Unternehmensstatus und die dritte ist eine Zählung der Anzahl der Investoren.
Hinweis: Sie müssen sowohl die Tabelle tutorial.crunchbase_companies
als auch die Investitionstabellen verwenden. Und Sie werden nach Status und Datensatz gruppieren wollen.
Probieren Sie es aus Siehe die Antwort
Schreibe einen Kommentar