ウィンドウ関数を使用する:
select role, name,
row_number() over (partition by role order by name) as rn
from the_table
order by name;
ウィンドウ関数を使用する:
select role, name,
row_number() over (partition by role order by name) as rn
from the_table
order by name;