Subqueries Part 2
Fait partie de la section Les fondamentaux du Journey SQL de Coddy — leçon 39 sur 72.
Il existe trois principaux types de sous-requêtes :
- Sous-requêtes scalaires - Renvoie une valeur unique (une ligne, une colonne)
- Sous-requêtes de ligne - Renvoie une seule ligne avec plusieurs colonnes
- Sous-requêtes de table - Renvoie plusieurs lignes et colonnes
Par exemple, voici quelques cas d'utilisation pour chaque type de sous-requête :
Sous-requête scalaire - Trouver les employés qui gagnent plus que le salaire moyen :
SELECT name, salary
FROM employees
WHERE salary > (
SELECT AVG(salary)
FROM employees
);Sous-requête de ligne - Trouver le ou les employés ayant le même department et salary que Alice
SELECT name
FROM employees
WHERE (department, salary) = (
SELECT department, salary
FROM employees
WHERE name = 'Alice'
);Sous-requêtes de table - Afficher les départements et leur nombre d'employés
SELECT department, count
FROM (
SELECT department, COUNT(*) as count
FROM employees
GROUP BY department
) as dept_counts;Remarquez les cas d'utilisation :
- Scalaire - Comparaisons simples (>, <, =)
- Lorsque vous devez faire correspondre plusieurs colonnes
- Lorsque vous devez interroger un ensemble de résultats
Défi
FacileTables et colonnes disponibles :
shop:price,quantity,category,list_date
Trouvez les catégories dont la quantité totale est supérieure à la moyenne de toutes les quantités du magasin.
Important : Vous devez utiliser une sous-requête à l'intérieur de la clause HAVING pour calculer la moyenne. N'utilisez pas de valeur inscrite en dur ni de requête séparée — la sous-requête doit calculer AVG(quantity) à partir de la table shop directement dans HAVING.
Étapes à suivre :
- Tout d'abord, écrivez une sous-requête qui calcule la moyenne de toutes les quantités du magasin :
SELECT AVG(quantity) FROM shop - Ensuite, pour chaque catégorie, faites la somme de leurs quantités et comparez-la avec cette sous-requête en utilisant le mot-clé
HAVING
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