一千萬個為什麽

搜索

在多列中查找最高分

如果我的DATA樣本是

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

如何使用這兩列獲得前5個分數列表 - 我的輸出應該是

Adele's   18
Madonna   16
Adele's   15
Britanny  12

最佳答案

當隊伍在前5名中有兩個相同的分數時,Derek Kromm的答案需要稍作修改以避免錯誤(例如,與示例相同,除了Madonna score1和score2都是16)。 union的默認行為是刪除重復的行,因此只保留其中一個分數。基於這個問題,我認為這不是理想的行為。在聯合中添加'all'關鍵字可以防止此錯誤。

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

我會將此作為對Derek Kromm答案的評論,但我沒有足夠的聲譽這樣做。對不起,如果將其作為答案發布,則不是正確的禮儀。

轉載註明原文: 在多列中查找最高分