9

私はこのようなものを持っています:

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

ピボット、連結、ブレークを検索しましたが、単純で賢明な解決策が見つかりません。

ティア

4

1 に答える 1

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;

各 ID の値がさらにある場合は、CASE 式をさらに追加できます。

于 2013-09-26T18:51:01.447 に答える