gpt4 book ai didi

mysql - 如何计算每个球员的最长连胜纪录

转载 作者:可可西里 更新时间:2023-11-01 08:54:50 27 4
gpt4 key购买 nike

我有一个名为 TournamentXPlayer 的 mySQL 扑克牌数据库,它包含一个名为 TournamentXPlayerID 的主索引以及 TournamentID、PlayerID、Finish 和 Payout。我一直在寻找方法来计算每个玩家获得现金奖励的最长连胜纪录。稍后我想包括其他的东西,比如球员的个人连胜记录(不是所有球员都参加每场比赛,但有些球员在比赛时表现非常好)、最长的连胜记录,甚至是最长的未获奖记录。但是目前我根本不知道如何最好地计算连胜。这能做到吗?

谢谢特里

最佳答案

我假设 tournamentID 会自动递增,因此它提供了数据的时间顺序。

这是组内排序的经典问题。为此,您需要考虑以下变量:

mysql> set @p_id:=-1; set @streak:=0;
mysql> select playerID,max(streak) from (select playerID,@streak:=if(Payout=0,0,if(@p_id=playerID,@streak+1,1)) streak, @p_id:=playerID from (select playerID,TournamentID,Payout from table order by 1,2) a) a group by 1;

在这个例子中,etaps 是:

  • 按球员排序,然后按锦标赛排序
  • 对于每个玩家:
    • 如果有支出则增加连胜变量
    • 如果没有则设置为0
  • 如果更换球员,则将连胜设置为 0。 p_id!=玩家ID。 p_id封装了最后考虑的玩家的信息。

关于mysql - 如何计算每个球员的最长连胜纪录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6828322/

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