如果我的数据样本是
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;
我会把这个作为对德里克·克罗姆的回答的评论,除非我没有足够的名声这么做。抱歉,如果把它作为一个回答张贴是不正确的礼仪。