Jeg har ikke en orakelinstans ved hånden lige nu, så jeg har ikke testet dette:
select *
from (select emp_id, name, occupation,
rank() over ( partition by occupation order by emp_id) rank
from employee)
where rank <= 3
Her er et link til, hvordan rang fungerer:http://www.psoug.org/reference/rank.html