Mysql 生成查询以比较头部到头部的统计信息
我试图找出如何生成一个查询,以查看当两名球员在一场比赛中是队长时,他们之间的获胜百分比 我在sqlfiddle上创建了模式 表(称为游戏)及其相关字段为:Mysql 生成查询以比较头部到头部的统计信息,mysql,sql,Mysql,Sql,我试图找出如何生成一个查询,以查看当两名球员在一场比赛中是队长时,他们之间的获胜百分比 我在sqlfiddle上创建了模式 表(称为游戏)及其相关字段为: gameID | pID | pWin | pLose | pCaptain 100 1 0 1 1 100 2 1 0 1 如果一个玩家赢了一场比赛,pWin设置为1,pLose设置为0,而失败者pWin将得到0,pLose将得到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
我希望能够输入两个玩家ID,并获得胜利百分比。我已经修改了一些查询有一段时间了,但是所涉及的查询超出了我对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
或者我不理解你(在那种情况下,对不起)
@MotiveKyle现在好点了吗
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
基本上是这样写的:
非常接近。起初,我认为这是有效的,但似乎只是计算每个人作为队长赢得比赛的次数,而不是与其他球员的比赛。例如,每个队只能有一名队长,因此,如果有3场比赛中,球员1是队1的队长,球员2是队2的队长,球员1在这3场比赛中赢了2场,那么他将有66%的胜率。