Используйте выражение CASE для каждого столбца:
select "Time", split_part("id/type", '/', 1) id,
case when split_part("id/type", '/', 2) = 'a' then "value" end a,
case when split_part("id/type", '/', 2) = 'b' then "value" end b,
case when split_part("id/type", '/', 2) = 'c' then "value" end c
from tablename
См. demo . Результаты:
| Time | id | a | b | c |
| ---- | --- | --- | --- | --- |
| 1 | A | 10 | | |
| 2 | A | | 15 | |
| 3 | A | | | 8 |
| 4 | A | | 2 | |