Ab hier? Diese Lektion ist Teil einer ausführlichen Anleitung zur Verwendung von SQL für die Datenanalyse. Schauen Sie sich den Anfang an.
In dieser Lektion behandeln wir:
- Der LINKE JOIN-Befehl
- Übungsprobleme
Der LINKE JOIN-Befehl
Beginnen wir mit dem Ausführen einer INNER JOIN
im Crunchbase-Datensatz und werfen einen Blick auf die Ergebnisse. Wir schauen uns einfach company-permalink
in jeder Tabelle sowie ein paar andere Felder an, um ein Gefühl dafür zu bekommen, was tatsächlich verbunden wird.,
SELECT companies.permalink AS companies_permalink, companies.name AS companies_name, acquisitions.company_permalink AS acquisitions_permalink, acquisitions.acquired_at AS acquired_date FROM tutorial.crunchbase_companies companies JOIN tutorial.crunchbase_acquisitions acquisitions ON companies.permalink = acquisitions.company_permalink
Möglicherweise wird“ 280 North “ zweimal in dieser Liste angezeigt. Dies liegt daran, dass es zwei Einträge in der Tabelle tutorial.crunchbase_acquisitions
, die beide mit der Tabelle tutorial.crunchbase_companies
verknüpft werden.,
Versuchen Sie nun, diese Abfrage als LEFT JOIN
:
SELECT companies.permalink AS companies_permalink, companies.name AS companies_name, acquisitions.company_permalink AS acquisitions_permalink, acquisitions.acquired_at AS acquired_date FROM tutorial.crunchbase_companies companies LEFT JOIN tutorial.crunchbase_acquisitions acquisitions ON companies.permalink = acquisitions.company_permalink
Sie können sehen, dass die ersten beiden Unternehmen aus der vorherigen Ergebnismenge, #waywire und 1000memories, durch eine Reihe von Ergebnissen, die Nullwerte in der acquisitions_permalink
Dies liegt daran, dass der Befehl LEFT JOIN
die Datenbank anweist, alle Zeilen in der Tabelle in der Klausel FROM
zurückzugeben, unabhängig davon, ob sie Übereinstimmungen in der Tabelle in der Klausel LEFT JOIN
haben.,
Schärfen Sie Ihre SQL-Kenntnisse
Sie können die Unterschiede zwischen einer LEFT JOIN
und einer JOIN
durch Lösen dieser Übungsprobleme untersuchen:
Übungsproblem
Schreiben Sie eine Abfrage, die einen inneren Join zwischen der tutorial.crunchbase_acquisitions
div>Tabelle und die tutorial.crunchbase_companies
Tabelle, aber anstatt einzelne Zeilen aufzulisten, zählen Sie die Anzahl der Nicht-Null-Zeilen in jeder Tabelle.,
Probieren Sie es aus Siehe die Antwort
Übungsproblem
Ändern Sie die obige Abfrage als LEFT JOIN
. Beachten Sie den Unterschied in den Ergebnissen.
Probieren Sie es aus Siehe die Antwort
Nachdem Sie nun ein Gefühl dafür haben, wie Left Joins funktionieren, versuchen Sie es härter Aggregationsproblem:
Übungsproblem
Zählen Sie die Anzahl der eindeutigen Unternehmen (nicht doppelt zählen Unternehmen) und einzigartige erworbene Unternehmen nach Staat., Fügen Sie keine Ergebnisse hinzu, für die keine Zustandsdaten vorliegen, und ordnen Sie sie nach der Anzahl der erworbenen Unternehmen vom höchsten zum niedrigsten an.
Probieren Sie es aus Siehe die Antwort