player1_id | score1 | score2 | player2_id
-----------+--------+--------+-----------
1 | 1 | 1 | 2
3 | 1 | 1 | 1
11 | 1 | 0 | 20
5 | 1 | 1 | 55
200 | 1 | 2 | 11
17 | 1 | 1 | 7
11 | 1 | 3 | 4
11 | 1 | 1 | 100
20 | 1 | 1 | 2
20 | 2 | 1 | 33
根据1分和2分,玩家有“赢”、“平”或“输”的结果。我需要找到球员,谁都有“赢”、“平”和“输”的结果。在这种情况下,玩家11和20。
我被困在这里,任何帮助都非常感谢。
最佳答案
如果我正确理解,你需要:
select p from (
select player1_id as p, case when score1>score2 then 'W' when score1=score2 then 'D' when score1<score2 then 'L' end as res from your_table
union all
select player2_id as p, case when score1>score2 then 'L' when score1=score2 then 'D' when score1<score2 then 'W' end as res from your_table
) t
group by p
having count( distinct res ) = 3
关于sql - 查找具有全部“胜利”,“平局”和“亏损”结果的球员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43974879/