SQL UNION
On novembre 16, 2021 by adminVous commencez ici ? Cette leçon fait partie d’un tutoriel complet sur l’utilisation de SQL pour l’analyse des données. Consultez le début.
Dans cette leçon, nous couvrirons :
- L’opérateur SQL UNION
- Problèmes pratiques
L’opérateur SQL UNION
Les jointures SQL vous permettent de combiner deux ensembles de données côte à côte, mais UNION
vous permet d’empiler un ensemble de données sur l’autre. Dit autrement, UNION
vous permet d’écrire deux déclarations SELECT
distinctes, et de faire en sorte que les résultats d’une déclaration s’affichent dans la même table que les résultats de l’autre déclaration.
Essayons-le avec les données d’investissement de Crunchbase, qui ont été divisées en deux tables pour les besoins de cette leçon. La requête suivante affichera tous les résultats de la première partie de la requête, puis tous les résultats de la deuxième partie dans le même tableau :
SELECT * FROM tutorial.crunchbase_investments_part1 UNION SELECT * FROM tutorial.crunchbase_investments_part2
Notez que UNION
n’ajoute que des valeurs distinctes. Plus précisément, lorsque vous utilisez UNION
, le jeu de données est annexé, et toutes les lignes de la table annexée qui sont exactement identiques aux lignes de la première table sont abandonnées. Si vous souhaitez annexer toutes les valeurs de la deuxième table, utilisez UNION ALL
. Vous utiliserez probablement UNION ALL
beaucoup plus souvent que UNION
. Dans ce cas particulier, il n’y a pas de lignes en double, donc UNION ALL
produira les mêmes résultats:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION ALL SELECT * FROM tutorial.crunchbase_investments_part2
SQL a des règles strictes pour l’ajout de données:
- Les deux tables doivent avoir le même nombre de colonnes
- Les colonnes doivent avoir les mêmes types de données dans le même ordre que la première table
Bien que les noms des colonnes ne doivent pas nécessairement être les mêmes, vous constaterez qu’ils le sont généralement. C’est parce que la plupart des cas dans lesquels vous voudriez utiliser UNION
impliquent l’assemblage de différentes parties du même ensemble de données (comme c’est le cas ici).
Puisque vous écrivez deux déclarations SELECT
distinctes, vous pouvez les traiter différemment avant de les annexer. Par exemple, vous pouvez les filtrer différemment en utilisant différentes clauses WHERE
.
Aiguisez vos compétences SQL
Problème pratique
Écrivez une requête qui ajoute les deux ensembles de données crunchbase_investments
ci-dessus (y compris les valeurs dupliquées). Filtrez le premier ensemble de données pour ne retenir que les entreprises dont le nom commence par la lettre « T », et filtrez le second pour les entreprises dont le nom commence par « M » (les deux ne sont pas sensibles à la casse). N’incluez que les colonnes company_permalink
, company_name
et investor_name
.
Essayez-le Voir la réponse
Pour un peu plus de défi:
Problème pratique
Écrivez une requête qui montre 3 colonnes. La première indique de quel ensemble de données (partie 1 ou 2) proviennent les données, la deuxième indique le statut de l’entreprise et la troisième est un compte du nombre d’investisseurs.
Instruction : vous devrez utiliser la table tutorial.crunchbase_companies
ainsi que les tables des investissements. Et vous voudrez regrouper par statut et par ensemble de données.
Essayez-le Voir la réponse
.
Laisser un commentaire