Salut jack!!!
Effectivement, j'ai eu besoin d'un group by car je devais faire le compte des élèves... mais j'ai longtemps essayé de le faire à l'intérieur de cette requête sans trop de succès. La solution est dans la fonction rank() qui permet de donner un rang unique par code permanent. Rownum est du oracle pour no. de ligne.
select
code_perm,
nom,
note,
cours
from (
select
code_perm,
nom,
note,
cours
rank() over (partition by code_perm order by note desc, rownum asc) as rang
from Table) tbl
where rang=1;