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.
Syntaxe :
1
SELECT ... FROM
2
(SELECT ...
3
FROM ...
4
WHERE ...)
5
WHERE ...
Remarque : Sous-sous requête
Il est possible d'imbriquer successivement plusieurs sous-requêtes.
1
SELECT ... FROM
2
(SELECT ... FROM
3
(SELECT...
4
FROM ...
5
WHERE)
6
WHERE ...)
7
WHERE ...
Syntaxe : Jointure de sous-requêtes
Il est possible de faire le produit ou la jointure de sous-requêtes.
1
SELECT ... FROM
2
(SELECT ... FROM
3
WHERE...)
4
(SELECT ... FROM
5
WHERE...)
6
WHERE ...
Méthode :
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).
Exemple : Enchaînement de calculs d'aggrégat
1
select avg(c) from (select count(b) as c from t group by a)
Exemple : Calcul de la moyenne des ventes par jour de la semaine
1
SELECT avg(q) FROM
2
(SELECT jds AS jds, COUNT(*) AS q
3
FROM ventes v
4
GROUP BY jds)