私のテーブルは次のようになります
ID AB_ID VALUES
1 2 20
2 2 10
3 2 30
4 2 60
返すクエリを作成したい
AB_ID value1 value2 value3 value4
2 20 10 30 60
お手伝いありがとう。
ごとAB_ID
に 4 つの行があることがわかっているので、これらの線に沿ってピボットを実行できるはずです。
SELECT ab_id,
MAX( CASE WHEN rn = 1 THEN values ELSE NULL END ) value1,
MAX( CASE WHEN rn = 2 THEN values ELSE NULL END ) value2,
MAX( CASE WHEN rn = 3 THEN values ELSE NULL END ) value3,
MAX( CASE WHEN rn = 4 THEN values ELSE NULL END ) value4
FROM (SELECT ab_id,
values,
rank() over (partition by ab_id
order by id) rn
FROM your_table)
GROUP BY ab_id
PIVOT
Oracle 11.2 を使用している場合は、キーワードも使用できるはずです。ただし、使用している Oracle のバージョンはわかりません。