我正在制作一个游戏的网站,作为一个爱好,我想增加一个赢的百分比为每个冠军在其中。我跟踪我的DB中的每一场比赛,结果列可以是0或1,如果输或赢。我正在使用MySql。我希望我的结果表是这样的:
ChampID | Wins | Loss | Percentage
12 1 1 50%
13 2 0 100%我的火柴表是这样的:
MatchID | ChampID | PlayerID | MatchOutcome
1 12 1231 1
2 12 1414 0
3 13 1341 1
4 13 1512 1所以ID 12的冠军会有50%的胜率,而13会有100%的胜率。
我一直在尝试加入工会,但我没能把他们做好,这是我最近的一次。
SELECT
(SELECT COUNT(*) FROM Matches WHERE (MatchOutcome LIKE "0")) AS Loss,
(SELECT COUNT(*) FROM Matches WHERE (MatchOutcome LIKE "1")) AS Win,
(SELECT (Win/(Win+Loss))*100 ) AS Percentage这个方法似乎是最有希望的,因为我也希望能够通过PlayerID进行进一步的排序。
耽误您时间,实在对不起
发布于 2016-11-14 18:13:58
只需做一些简单的数学来做这个。没有理由对联接和子查询产生创造性:
SELECT sum(matchoutcome)/count(matchid) FROM Matches where PlayerID = 12;或者,对于列表中的每一个玩家:
SELECT playerID, sum(matchoutcome)/count(matchid) FROM Matches GROUP BY playerID;您也可以在这里进行转换为百分比:
SELECT playerID, (sum(matchoutcome)/count(matchid))*100 FROM Matches GROUP BY playerID;要在不同的栏目中获得得失:
SELECT playerID,
sum(matchOutcome) as Wins,
Count(matchid) - sum(matchOutcome) as Losses,
(sum(matchoutcome)/count(matchid))*100
FROM Matches
GROUP BY playerID;https://stackoverflow.com/questions/40595095
复制相似问题