Используйте функцию агрегирования строк listagg()
:
select product_id, listagg(product_detail_value) product_details
from mytable
group by product_id
Или, если вы хотите видеть результаты в виде пар 'name: value'
, разделенных запятыми, тогда:
select
product_id,
listagg(product_detail_name || ': ' || product_detail_value) product_details
from mytable
group by product_id
listagg()
также поддерживает предложение order by
(с синтаксисом within group
), которое описано в документации.