SQL - 选择最高赢/输

时间:2013-09-14 12:03:16

标签: mysql sql

我有桌面'游戏',想要选择我想要的团队中最高的输赢。

我有这样的表:

ID team1 team2 score1 score2
1  KVA   PLZ   8      5
2  MLB   KVA   0      8
3  PLZ   SPA   0      6
4  SPA   MLB   5      2
5  KVA   SPA   3      5
6  PLZ   MLB   7      1

两个例子:

1)我想选择团队'KVA'的最高胜利,然后我想得到这一行:

ID team1 team2 score1 score2
2  MLB   KVA   0      8

2)我想选择团队'PLZ'的最大损失,然后我想得到:

ID team1 team2 score1 score2
3  PLZ   SPA   0      6

要求:

  • 获胜10:0优于11:1
  • 输掉1:11优于0:10

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

基本方法是按分数差异进行排序,然后按第二列进行排序。这有点复杂,因为团队可以在任何一个团队列中。

KVA的最高胜利:

Select
    *
From
    games
Where
    team1 = 'KVA' Or
    team2 = 'KVA'
Order By
    Case When team1 = 'KVA' Then score1 - score2 else score2 - score1 end Desc,
    Case When team1 = 'KVA' then score1 else score2 end
Limit 1

最高PLZ损失

Select
    *
From
    games
Where
    team1 = 'PLZ' Or
    team2 = 'PLZ'
Order By
    Case team1 when 'PLZ' Then score2 - score1 else score1 - score2 end Desc,
    Case team1 when 'PLZ' then score2 else score1 end
Limit 1

Example Fiddle