oracle多行合并成一行,并且行内不同值组成新列。显示在同一行

图片说明
如图 假如表中存在前四行数据,将要合并成两行数据,并且将不同值的 组成新的列来显示数据。该如何实现。

select id ,listagg( name, ',' ) within group ( order by id ) as name
from TABLE_NAME
GROUP BY id;