条件付き集計を使用する方がはるかに簡単だと思います:
select id,
max(case when type = 'A' then value end) as a,
max(case when type = 'B' then value end) as b,
max(case when type = 'C' then value end) as c
from t
group by id;
create table as
を使用して、結果をテーブルに挿入できます。 。これは、ピボットクエリでも機能するはずです。