Je ne comprends pas pourquoi les résultats sont différents lorsque l'on utilise une carte à puce. ORDER BY
clause dans une analyse COUNT
fonction.
Prenons un exemple simple :
with req as
(select 1 as n, 'A' as cls
from dual
union
select 2 as n, 'A' as cls
from dual)
select req.*, count(*) over(partition by cls) as cnt from req;
donne le résultat suivant :
N CLS CNT
2 A 2
1 A 2
Alors que, lors de l'ajout d'un ORDER BY
dans la clause analytique, le résultat est différent !
with req as
(select 1 as n, 'A' as cls
from dual
union
select 2 as n, 'A' as cls
from dual)
select req.*, count(*) over(partition by cls order by n) as cnt from req;
La colonne CNT a changé :
N CLS CNT
1 A 1
2 A 2
Quelqu'un peut-il m'expliquer ?
Merci