oracle查询出重复的名称,怎么通过拼接序号区分重复

oracle查询出两个重复书名:book,怎么让这个书名查出来是book1、book2,有多个重复的话序号自增

表结构: name

       book
       pen
       book
       paper
       book

预期的结果 : name

            book1
            pen
            book2
            paper
            book3

select count(*) as cnt, name from table group by name having cnt > 1

为什么表中会存在重复数据,业务场景是怎样的?

select name||row_number()over(partition by name order by 你排序的字段 ) from tab