-1

我有桌面“游戏”,想选择我想要的球队的最高输赢。

我有这样的表:

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 好

感谢您的任何帮助。

4

1 回答 1

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

示例小提琴

于 2013-09-14T12:12:33.733 回答