如果我的数据样本是

team name  score1  score2
Adele's     15      18
Madonna   16       3
Britanny    9        12

如何使用这两个列获得前五名的分数列表-
我的输出应该是
Adele's   18
Madonna   16
Adele's   15
Britanny  12

最佳答案

德里克·克罗姆的答案需要稍加修改,以避免在一支球队在前5名中有两个相同的分数时出现错误(例如,与示例相同,但麦当娜的分数1和分数2都是16)。union的默认行为是删除重复行,因此只保留一个分数。基于这个问题,我认为这不是期望的行为。将'all'关键字添加到union将防止此错误。

select * from (
  select team, score1 from tbl
  union all select team, score2 from tbl) a
order by score1 desc
limit 5;

我会把这个作为对德里克·克罗姆的回答的评论,除非我没有足够的名声这么做。抱歉,如果把它作为一个回答张贴是不正确的礼仪。

07-27 21:22