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.