Je n'ai pas d'instance Oracle à portée de main pour le moment, donc je n'ai pas testé ceci :
select *
from (select emp_id, name, occupation,
rank() over ( partition by occupation order by emp_id) rank
from employee)
where rank <= 3
Voici un lien sur le fonctionnement du classement :http://www.psoug.org/reference/rank.html