with tempa as
(
select 1 a,'aa' c from dual
union all select 2 a,'aa' c from dual
union all select 3 a,'bb' c from dual
union all select 4 a,'bb' c from dual
)
select a,c||row_number() over(partition by c order by a) b,c
from tempa;
result:
A B C
1 aa1 aa
2 aa2 aa
3 bb1 bb
4 bb2 bb