Subquery
PostgreSQL 🟡 MidDefinition
Requete imbriquee dans une autre requete, utilisable dans SELECT, FROM, WHERE ou HAVING. Peut etre correlee (reference la requete externe) ou non-correlee (independante).
Analogie
Une question dans une question : 'Qui gagne plus que la moyenne des salaires ?'
Exemple de code
SELECT name FROM employees
WHERE salary > (
SELECT AVG(salary) FROM employees
);
-- Ou dans FROM
SELECT * FROM (
SELECT name, COUNT(*) as cnt
FROM orders GROUP BY name
) sub WHERE cnt > 5;
Cas d'usage
Filtrer sur un resultat agrege ou creer des tables derivees pour des requetes complexes.
Anti-pattern
Utiliser des sous-requetes correlees dans le SELECT quand un JOIN serait plus performant.