Utiliser une fonction fenêtre :
select role, name,
row_number() over (partition by role order by name) as rn
from the_table
order by name;
Utiliser une fonction fenêtre :
select role, name,
row_number() over (partition by role order by name) as rn
from the_table
order by name;