我有这个表结果
team_id | match_id | result
----------------------------
1 |13 | 1-1
1 |13 | 2-0
1 |13 | 0-3
我想在此更改
team_id | match_id | result | result 2 | result 3
--------------------------------------------------
1 |13 | 1-1 | 2-0 | 0-3
答案 0 :(得分:1)
如果排序是任意的并且确实存在,则可以使用条件聚合:
select team_id, max(case when seqnum = 1 then result end) as result1,
max(case when seqnum = 2 then result end) as result2,
max(case when seqnum = 3 then result end) as result3
from (select t.*,
row_number() over (partition by team_id order by team_id) as seqnum
from t
) t
group by team_id;