Menu
Coddy logo textTech

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 :

  1. Sous-requêtes scalaires - Renvoie une valeur unique (une ligne, une colonne)
  2. Sous-requêtes de ligne - Renvoie une seule ligne avec plusieurs colonnes
  3. 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
challenge icon

Défi

Facile

Tables 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 :

  1. Tout d'abord, écrivez une sous-requête qui calcule la moyenne de toutes les quantités du magasin : SELECT AVG(quantity) FROM shop
  2. 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

quiz iconTestez-vous

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