teradata sql将多次出现转移到其他列中

use*_*576 9 sql pivot teradata

我有这样的事情:

ID      Result
1       value1
2       value1
2       value2
3       value1
4       value1
4       value2
4       value3
Run Code Online (Sandbox Code Playgroud)

我想回复这样的事情:

ID      Result1      Result2      Result3
1       value1
2       value1       value2
3       value1
4       value1       value2       value3
Run Code Online (Sandbox Code Playgroud)

我搜索了枢轴和连续点和断点,我找不到一个简单明智的解决方案.

TIA

Tar*_*ryn 15

遗憾的是,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;
Run Code Online (Sandbox Code Playgroud)

如果每个ID都有更多值,则可以添加更多CASE表达式.