Sous-requêtes simples
Souvent utilisées sur conditions d'agrégats, utilisables avec tous les opérateurs : >, =, >=, IN, NOT IN, ...
SELECT rs_client, ca_client FROM client WHERE ca_client > (SELECT AVG(ca_client) FROM client)
Les clients ayant un CA > à la moyenne des CA de tous les clients.
SELECT rs_client FROM client WHERE id_client NOT IN (SELECT id_client FROM commande)
Les clients n'ayant jamais commandé.
S-R et conditions d'agrégats
SELECT id_categorie, AVG(ca_client) FROM client GROUP BY id_categorie HAVING MAX(ca_client) > (SELECT AVG(ca_client) FROM client)
CA moyen, par catégorie de client pour les catégories ayant un chiffre d'affaires maximum > à la moyenne des chiffres d'affaires.
Sous-requêtes corrélées
Les occurrences de la sous-requête dépendent d'une colonne de la requête principale.
SELECT rs_client FROM client cl1 WHERE ca_client < (SELECT AVG(ca_client) FROM client cl2 WHERE cl2.id_categorie = cl1.id_categorie)
Clients ayant un CA < au CA moyen de la catégorie à laquelle ils appartiennent.