我有这样一张 table (称之为结果),比赛得分:
id | Winner | Loser | Score
---+--------+-------+------
1 Bob Joe 4
2 Roy Mary 3
3 Joe Roy 6
4 Mary Bob 1
5 Ellen Roy 9
6 José Roy 2
7 Joe Bob 7
我想要做的是计算每个名字成为胜利者的次数,以及每次他们是输家的次数,并根据所玩的游戏次数来降序:
Name | Wins | Losses | NumberGames
-----+------+--------+------------
Roy 1 3 4
Bob 1 2 3
Joe 2 1 3
Mary 1 1 2
Ellen 1 0 1
José 1 0 1
更好的是,我想根据赢得的比赛百分比除以比赛总数(胜利和亏损)来降序 .
我不想硬编码任何名称,例如赢家=“鲍勃” .
我知道如何制定一个查询来计算每个单独的列,但我还没有弄清楚如何创建3个不同的计数并按名称进行分组 .
2 回答
此查询的工作原理是根据带有查询的Winner和Loser列生成唯一的名称列表 .
Query
LEFT JOIN是Winner和Loser COUNT的唯一名单,以获得胜利和失败 .
Query
Results
见演示http://sqlfiddle.com/#!9/68abe/33
另一种方法: