à partir d’ici? Cette leçon fait partie d’un tutoriel complet sur L’utilisation de SQL pour L’analyse de données. Découvrez le début.
dans cette leçon, nous allons couvrir:
- la commande LEFT JOIN
- problèmes de pratique
la commande LEFT JOIN
commençons par exécuter un INNER JOIN
sur le jeu de données Crunchbase et. Nous allons simplement regarder company-permalink
dans chaque table, ainsi que quelques autres champs, pour avoir une idée de ce qui est réellement joint.,
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
Vous pouvez remarquer que « 280 Nord » apparaît deux fois dans cette liste. C’est parce qu’il a deux entrées dans la table tutorial.crunchbase_acquisitions
, qui sont toutes deux jointes sur la table tutorial.crunchbase_companies
.,
maintenant, essayez d’exécuter cette requête en tant que 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
Vous pouvez voir que les deux premières sociétés du jeu de résultats précédent, #waywire et 1000memories, sont poussées vers le bas de la page résultats contenant des valeurs NULL dans les champs acquisitions_permalink
Et acquired_date
.,
C’est parce que le LEFT JOIN
commande indique la base de données à retourner toutes les lignes de la table dans le FROM
l’article, peu importe s’ils n’ont pas de correspondance dans la table dans le LEFT JOIN
clause.,
affinez vos compétences SQL
Vous pouvez explorer les différences entre unLEFT JOIN
et unJOIN
en résolvant ces problèmes de pratique:
problème de pratique
écrivez une requête qui effectue une jointure interne entre la tabletutorial.crunchbase_acquisitions
et la tabletutorial.crunchbase_companies
, mais au lieu de lister des lignes individuelles, comptez le nombre de lignes non nulles dans chaque table.,
Essayer de Voir la réponse
la Pratique de Problème
Modifier la requête ci-dessus pour être un LEFT JOIN
. Notez la différence de résultats.
essayez-le voir la réponse
maintenant que vous avez une idée du fonctionnement des jointures à gauche, essayez ce problème d’agrégation plus difficile:
problème de pratique
comptez le nombre d’entreprises uniques (ne comptez pas deux fois les entreprises) et les entreprises acquises uniques par état., Ne pas inclure les résultats pour lesquels il n’y a pas de données d’état et classer par le nombre d’entreprises acquises du plus élevé au plus bas.
Essayer de Voir la réponse