gpt4 book ai didi

mysql - 每个 ID 中字段出现的百分比

转载 作者:行者123 更新时间:2023-11-29 07:08:49 29 4
gpt4 key购买 nike

我正在为游戏制作一个网站作为一种爱好,我想为其中的每个冠军添加获胜百分比。我跟踪数据库中的每场比赛,结果列可以是 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%,而 ID 为 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 进一步排序。

感谢您的宝贵时间

最佳答案

只需做一些简单的数学计算就可以做到这一点。没有理由通过连接和子查询发挥创意:

 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;

关于mysql - 每个 ID 中字段出现的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40595095/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com