Technologie

Une introduction en douceur aux sous-requêtes SQL

Une introduction en douceur aux sous-requêtes SQL


SQL simplifié

Comprenez pourquoi et quand vous devez les utiliser!

2*QdkAQZKOWwLkvTyL1grm1g - Une introduction en douceur aux sous-requêtes SQL
Apprendre à poser correctement des questions à vos données est la première étape de tout projet de science des données. La source

SQL est l'un des outils fondamentaux que tout data scientist doit maîtriser pour explorer les bases de données. Il a la réputation d'être simple et facile à utiliser. Mais tout n'est pas une promenade dans le parc avec lui, et l'un des plus grands défis pour les débutants est de comprendre l'utilisation des sous-requêtes.

Avant de commencer, le cahier avec le code vous attend, comme d'habitude.

En supposant que vous êtes familiarisé avec SQL, l'une des premières choses que nous apprenons est que l'ordre des instructions principales doit être le suivant:

Mais une chose qui n'est pas si évidente est le fait que ce n'est pas ainsi que la requête est traitée! En fait, c'est presque l'inverse:

Et pourquoi est-il important de savoir cela? Parce que si vous comprenez cette logique, il sera plus facile de visualiser ultérieurement le besoin d'une sous-requête. Avec SQL, comprendre les coulisses est aussi important que de savoir comment écrire les requêtes.

Disons que vous avez le tableau suivant team_data:

Si nous voulons récupérer les objectifs moyens par équipe, la requête sera:

Ce qui donnera le résultat suivant:

Buts moyens regroupés par équipes

Jusqu'à présent, pas de mystère, non? Mais que se passe-t-il si nous voulons filtrer uniquement les équipes avec des objectifs moyens supérieurs à 50? Normalement, notre première approche serait quelque chose comme ça:

La première tentative génère une erreur d'agrégation.

Cela nous a donné une erreur d'agrégation, mais pourquoi? Faisons les étapes en fonction du traitement de la requête:

  • 1: FROM team_data - OK, la table existe, alors continuons;
  • 2: OERE objectifs moyens> 50 - Hummmm, nous avons ici une erreur, comment filtrer les valeurs si le calcul n’était pas encore fait?

C'est un exemple parfait où une sous-requête doit être utilisée. Ce que nous devons faire, c'est d'abord générer le champ avg_goals, alors quand le QUAND vient filtrer, le calcul sera déjà là! Conformément à la logique de requête, ce processus doit être effectué sur le DE , car elle précède le filtre QUAND. Voyons à quoi ressemble cette requête:

Succès!

Pouvez-vous voir maintenant ce qui s'est passé?

  • 1: Le DE a généré la valeur groupée dont nous avons besoin;
  • 2: QUAND filtré selon nos spécifications;
  • 3: Enfin, SÉLECTIONNER a pris les colonnes que nous avions spécifiées.

Fondamentalement, nous avons besoin de sous-requêtes la plupart du temps, nous devons filtrer les champs agrégés. Quelques conseils pour vous aider lors de leur rédaction:

  • N'oubliez pas de créer un alias après la sous-requête. Dans l'exemple, il y a un «tp» juste après la fin de celui-ci, mais cela peut être tout ce que vous voulez.
  • Même si SQL n'est pas sensible à la casse, il est recommandé de mettre les instructions en majuscule. Il est également utile d'écrire avec indentation, car cela améliore la lisibilité de votre requête. Il est étonnamment facile de se perdre même avec de petites requêtes.

Et c'est tout pour aujourd'hui. J'espère que les sous-requêtes sont un peu plus démystifiées pour vous maintenant! Faites-moi part de vos réflexions dans les commentaires et n'hésitez pas à ajouter des exemples plus pratiques!

Afficher plus

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Articles similaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page
Fermer