Subqueries Part 1
Fait partie de la section Les fondamentaux du Journey SQL de Coddy — leçon 38 sur 72.
Les sous-requêtes nous permettent de combiner plusieurs requêtes en une seule. Par exemple, considérez le tableau suivant <strong>employees</strong> :
| Identifiant | Salaire |
|---|---|
| 1 | 48 |
| 2 | 34 |
| 3 | 46 |
| 4 | 13 |
| 5 | 28 |
Nous avons besoin d'une sous-requête car nous ne pouvons pas utiliser WHERE salary > AVG(salary) directement puisque les fonctions d'agrégation comme AVG() ne peuvent pas être utilisées dans une clause WHERE - elles ne peuvent l'être qu'après que les données ont été groupées.
SELECT id, salary
FROM employees
WHERE salary > (
SELECT AVG(salary)
FROM employees
);Une sous-requête nous aide à trouver les employés qui gagnent plus que le salaire moyen de l'entreprise en calculant d'abord la moyenne (requête interne) et en utilisant ensuite cette valeur pour filtrer les employés (requête externe).
Puisque la moyenne est : (48 + 34 + 46 + 13 + 28) / 5 = 33.8, c'est le résultat de la requête :
| identifiant | salaire |
|---|---|
| 1 | 48 |
| 2 | 34 |
| 3 | 46 |
Défi
FacileTables et colonnes disponibles :
<strong>shop</strong>:<strong>price</strong>,<strong>quantity</strong>,<strong>category</strong>,<strong>list_date</strong>
Écrivez une requête pour trouver tous les produits (sélectionnez toutes les colonnes) où le prix est supérieur au prix moyen de tous les produits.
Utilisez une sous-requête dans la clause WHERE pour calculer le prix moyen, puis comparez le prix de chaque produit à cette moyenne.
Aide-mémoire
Les sous-requêtes permettent de combiner plusieurs requêtes en une seule. Elles sont utiles lorsque vous ne pouvez pas utiliser des fonctions d'agrégation comme AVG() directement dans une clause WHERE.
Syntaxe de base des sous-requêtes :
SELECT column1, column2
FROM table_name
WHERE column1 > (
SELECT AVG(column1)
FROM table_name
);La sous-requête (requête interne) s'exécute en premier pour calculer la moyenne, puis la requête externe utilise ce résultat pour filtrer les données.
Essayez vous-même
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Les fondamentaux
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns