我试图找出如何生成一个查询,以查看两名球员在一场比赛中作为队长时的获胜百分比。
我在sqlfiddle上创建了模式http://sqlfiddle.com/#!2/a2f8c/1
表(称为游戏)及其相关字段为:

gameID | pID | pWin | pLose | pCaptain
 100      1     0       1        1
 100      2     1       0        1

如果一个玩家赢了一场比赛,pWin设置为1,pLose设置为0,而输家将得到pWin中的0和pLose中的1。如果他们是在那场比赛中挑选球队的队长,那么pCaptain设置为1。
我想输入两个玩家的身份证并获得一个获胜百分比。我已经修改了一些查询有一段时间了,但是涉及的查询超出了我对SQL的了解。
我很感激你的帮助!

最佳答案

有点像

SELECT p1.sumwin/(p1.sumwin + p2.sumwin)*100 as p1,
       p2.sumwin/(p1.sumwin + p2.sumwin)*100 as p2
FROM
      (SELECT pID, sum(pWin) sumWin
         FROM games
        WHERE  pCaptain = 1
        GROUP BY pID) p1,
      (SELECT pID, sum(pWin) sumWin
         FROM games
        WHERE  pCaptain = 1
        GROUP BY pID) p2
WHERE p1.pid = 1 AND
      p2.pid = 2

或者我不理解你(那样的话对不起)。
@莫蒂维凯尔现在好些了吗?
SELECT (sum(p1.pWin)/(sum(p1.pWin) + sum(p2.pWin)))*100 p1Win,
        (sum(p2.pWin)/(sum(p1.pWin) + sum(p2.pWin)))*100 p2Win
FROM
      (SELECT pID, pWin, gameID
         FROM games
        WHERE  pCaptain = 1) p1,
      (SELECT pID, pWin, gameID
         FROM games
        WHERE  pCaptain = 1) p2
WHERE p1.gameID = p2.gameID AND
      p1.pID = 1 AND
      p2.pID = 2

它基本上说:
收集p1中所有玩家的所有游戏
收集p2中所有玩家的所有游戏
通过游戏连接子视图p1和p2
将结果筛选为player1和player2玩的游戏
将两个玩家的所有胜利汇总并计算百分比。

关于mysql - 生成查询以比较头对头统计信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9752164/

10-16 06:23
查看更多