teradata sql pivot multiple occurrences into additional columns

删除回忆录丶 提交于 2019-12-18 02:48:01

问题


I have something like this:

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

And I'd like to return something like this:

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

I've searched on pivots and concats and breaks and I just can't find a simple, sensible solution.

TIA


回答1:


Unfortunately Teradata doesn't have a PIVOT function but you can use an aggregate function with a CASE expression to get the result.

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;

If you have more values for each ID, then you can add more CASE expressions.



来源:https://stackoverflow.com/questions/19035081/teradata-sql-pivot-multiple-occurrences-into-additional-columns

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!