Sous-requêtes dans la clause FROM

Il est possible de raffiner progressivement une requête en enchaînant les questions dans la clause FROM.

SELECT ... FROM 
(SELECT ... 
FROM ... 
WHERE ...) 
WHERE ...

Sous-sous requête

Il est possible d'imbriquer successivement plusieurs sous-requêtes.

SELECT ... FROM 
(SELECT ... FROM 
  (SELECT... 
  FROM ...
  WHERE)
WHERE ...) 
WHERE ...

Jointure de sous-requêtes

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).

Enchaînement de calculs d'aggrégat

select avg(c) from (select count(b) as c from t group by a)

Calcul de la moyenne des ventes par jour de la semaine

SELECT avg(q) FROM
(SELECT jds AS jds, COUNT(*) AS q
FROM ventes v
GROUP BY jds)
AccueilRappels > Rappels Oracle > Sous-requêtes dans la clause FROM< PrécédentSuivant >