teradata sql pivot несколько вхождений в дополнительные столбцы

у меня что-то вроде этого:

ID      Result
1       value1
2       value1
2       value2
3       value1
4       value1
4       value2
4       value3

и я хотел бы вернуть что-то вроде этого:

ID      Result1      Result2      Result3
1       value1
2       value1       value2
3       value1
4       value1       value2       value3

Я искал на осях и concats и ломает, и я просто не могу найти простое и разумное решение.

ТИА

1 ответов


к сожалению, Teradata не имеет функции PIVOT, но вы можете использовать агрегатную функцию с выражением CASE для получения результата.

select id,
    max(case when seq =1 then result end) result1,
    max(case when seq =2 then result end) result2,
    max(case when seq =3 then result end) result3
from
(
    select id, res, row_number() over(partition by id order by result) seq
    from yourtable
) d
group by id
order by id;

Если у вас больше значений для каждого ID, вы можете добавить больше выражений CASE.