C'est normal, comme expliqué ci après : (trouvé ailleurs sur le web)
The only meaningful use of ROWNUM in a WHERE clause is
... WHERE ROWNUM < constant
because the value of ROWNUM increases only when a row is retrieved. The following search condition can never be met because the first four rows are not retrieved:
... WHERE ROWNUM = 5
the only caveat to this is ... WHERE ROWNUM = 1
Voilà pourquoi... ce qui est somme toute assez logique...
Et pour les expressions avec Group By, je pense que transformer la requête avec le group by en sous requête fait l'affaire :
select rownum, t1.* from (
SELECT...
) t1
WHERE rownum <= 5;
C'est normal, comme expliqué