gpt4 book ai didi

MySQL 按获胜机会排序 (%)

转载 作者:行者123 更新时间:2023-11-29 06:18:22 24 4
gpt4 key购买 nike

我的表格以这种方式包含信息:

Player_ID | isWinner

其中 PlayerID 是玩家的 ID,isWinner 是一个 bool 值(0 表示输,1 表示赢)。

相同的 Player_ID 可以在多行中。

我的目标是进行查询以获取此表中玩家排序的所有信息,从最高胜率 (%) 到最低。

数据示例:

(Player_ID | isWinner)
1 | 1
1 | 1
1 | 1
2 | 0
2 | 0
2 | 1
3 | 0
3 | 0
3 | 0

查询将以这种方式对这些数据进行排序:

  • 1 | 100% --> 玩家ID 1的胜率最高
  • 2 | 33% --> 玩家ID 2的胜率第二
  • 3 | 0% --> 玩家 ID 3 的胜率最低

我可能必须按 player_id 分组并以某种方式计算每个玩家的 isWinnerSUM,然后除以记录数.

有什么想法吗?

最佳答案

您可以使用 avg()找出每个玩家的总获胜次数的平均值,然后乘以 100 得到百分比

select
player_id as pid,
avg(is_winner) * 100 as win_rate,
(
SELECT
count(player_id)
FROM
`34617596`
WHERE
is_winner = 1
AND player_id = pid
) AS total_wins
FROM
`34617596`
group by pid
order by win_rate desc

参见 fiddle : http://sqlfiddle.com/#!9/10f797/1

enter image description here

关于MySQL 按获胜机会排序 (%),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34617596/

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