-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

2 つの例:

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 よりも優れている
  • 0:10よりも1:11で負ける方がいい

助けてくれてありがとう。

4

1 に答える 1

0

基本的なアプローチは、スコアの差で並べ替えてから、タイブレーカーの 2 番目の列を並べることです。チームはどちらのチーム列にも入る可能性があるため、少し複雑です。

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 に答える