Bonjour à tous,

J'aimerais avoir une réponse à ceci:

Dans la requête suivante, le subselect en rouge est il évalué une seule ou plusieurs fois ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
select idproj, cat, count(distinct (can||annee||prop||vente||lot)) / (select count(*) from cdp_lots where idproj=2 and sel='O')
from v_cdp_cat where idproj=2 group by idproj, cat
Pour info, le COST donné par l'explain plan est le même que si je fais ceci (le nombre 64 est celui renvoyé par le subselect en question) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
select idproj, cat, count(distinct (can||annee||prop||vente||lot)) / 64 
from v_cdp_cat where idproj=2 group by idproj, cat
Pour moi il execute la subquery pour chaque row du select de base.

Merci d'avance.