Sous-requêtes, partie 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 seule valeur (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 du même service et ayant le même salaire qu’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 dans la boutique.
Important : Vous devez utiliser une sous-requête à l’intérieur de la clause HAVING pour calculer la moyenne. N’utilisez pas de valeur codée en dur ni de requête séparée : la sous-requête doit calculer directement AVG(quantity) à partir de la table shop dans HAVING.
Étapes à suivre :
- Tout d’abord, écrivez une sous-requête qui calcule la moyenne de toutes les quantités dans la boutique :
SELECT AVG(quantity) FROM shop - Ensuite, pour chaque catégorie, additionnez leurs quantités et comparez le résultat à cette sous-requête à l’aide du 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
1Introduction
IntroductionQu’est-ce qu’une base de donnéesConcepts des bases de donnéesValeurs uniques4D’autres mots-clés
Le mot-clé INLe mot-clé BETWEENLe mot-clé LIKELe mot-clé ASRécapitulatif - Modèles de téléphones portables2Conditions
Bases des conditionsLe mot-clé ANDLe mot-clé ORLe mot-clé NOTCombinaison de plusieurs conditionsParenthèsesBooléens5Opérations arithmétiques
Opérateurs mathématiquesColonnes mathématiquesL’opération moduloLa fonction ROUND()3Format de retour spécifique
Valeurs NULLTrier les résultats, partie 1Trier les résultats, partie 2Récapitulatif - Entreprise de cybersécuritéLimiter le nombre d’enregistrementsRécapitulatif - Usine de véhicules6Défis d’introduction
Récapitulatif - Élection parlementaireRécapitulatif - Arrestation criminelle par la policeRécapitulatif - Récipient de boisson au barRécapitulatif - Ingénieur de nouvelles colonnes9Tables multiples
Jointure de base, partie 1Jointure de base, partie 2Récapitulatif - JointureAuto-jointureRécapitulatif - Auto-jointureUnionSimplifier les requêtes, mot-clé WITHRécapitulatif - Requêtes WITHRécapitulatif - Entrepreneur immobilier12Fonctions de fenêtre – partie 2
Fonctions RANK & DENSE_RANKRécapitulatif – RANK & DENSE_RANKFonction NTILEFonctions d’agrégationCritère ROWS & RANGEEntraînez-vous par vous-même : Playground SQL