Il est possible de raffiner progressivement une requête en enchaînant les questions dans la clause FROM.
SELECT ... FROM
(SELECT ...
FROM ...
WHERE ...)
WHERE ...
Il est possible d'imbriquer successivement plusieurs sous-requêtes.
SELECT ... FROM
(SELECT ... FROM
(SELECT...
FROM ...
WHERE)
WHERE ...)
WHERE ...
Il est possible de faire le produit ou la jointure de sous-requêtes.
SELECT ... FROM
(SELECT ... FROM
WHERE...)
(SELECT ... FROM
WHERE...)
WHERE ...
Cette extension est particulièrement utile pour les calculs d’agrégat après filtrage ou pour enchaîner les calculs d’agrégat (par exemple pour faire la moyenne de comptage après regroupement).
select avg(c) from (select count(b) as c from t group by a)
SELECT avg(q) FROM
(SELECT jds AS jds, COUNT(*) AS q
FROM ventes v
GROUP BY jds)