gpt4 book ai didi

mysql - 计算累计胜负百分比

转载 作者:行者123 更新时间:2023-11-29 09:47:52 25 4
gpt4 key购买 nike

我目前有一个球队参加的所有比赛的列表,其中该列表生成球队名称、得分、对手名称和得分以及 W(获胜)、L(失利)或 D(平局),这些都是派生的来 self 的表“MatchDetails2017”。我想做的是显示每场比赛后的累积获胜百分比。

我花了几个小时尝试在线寻求帮助,但遇到了困难。

SELECT Game, WL, ((SELECT COUNT(WL) FROM MatchDetails2017 WHERE Team = 'TeamName' AND WL = 'W')/COUNT(*))*100   
FROM MatchDetails2017
WHERE Team = 'TeamName'
GROUP BY Game

例如我希望数据像这样显示......

Game|Result|Win%
1|W|100.00
2|W|100.00
3|W|100.00
4|L|75.00
5|D|60.00
6|W|66.67

这是我目前得到的结果...

1 W 5200.0000
2 W 5200.0000
3 W 5200.0000
4 L 5200.0000
5 D 5200.0000
6 W 5200.0000

最佳答案

为了使这项工作有效,计算总比赛数的 COUNT(*) 也需要仅针对前面的比赛,因此您需要将其带入子查询中。您还需要将子查询限制为仅包含当前游戏及其之前的游戏:

SELECT Game, 
WL AS Result,
(SELECT SUM(WL = 'W') / COUNT(*) FROM MatchDetails2017 m2 WHERE m2.Game <= m1.Game AND m2.Team = m1.Team) * 100 AS `Win%`
FROM MatchDetails2017 m1
WHERE Team = 'TeamName'

输出:

Game    Result  Win%
1 W 100
2 W 100
3 W 100
4 L 75
5 D 60
6 W 66.6667

Demo on dbfiddle

请注意,此查询利用了 MySQL 在数字上下文中将 bool 值视为 1 或 0 的事实,因此我们可以 SUM(WL = 'W') 来获取总数胜利。

关于mysql - 计算累计胜负百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55350194/

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