使用SQL将更多行连接在一起

时间:2016-02-11 17:42:44

标签: sql

我有这个表结果

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

1 个答案:

答案 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;