我有一个名为TournamentXPlayer的mySQL扑克数据库,其中包含一个名为TournamentXPlayerID和TournamentID,PlayerID,Finish和Payout的主索引。 我一直在寻找各种方法来计算每位球员获得现金奖的最长连胜纪录。后来我想包括其他的东西,如球员个人连胜(并非所有球员都参加每场比赛,但有些球员在比赛时表现得非常好),最长的连胜纪录,甚至最长连胜而没有赢得奖品。但是目前我无法弄清楚如何最好地统计连胜。 可以这样做吗?
由于 特里
答案 0 :(得分:1)
我认为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是:
答案 1 :(得分:0)
当你要计算条纹时,你需要知道一个玩家完成比赛的时间。否则,如果一名球员进行多重击球,你将得到错误的结果,因为,他可能会在一场超级筹码比赛中打15个小时并完成比赛并同时注册并退出多个超级联赛比赛。您可以按ID-s(相对于开始时间)对锦标赛进行排序,但如果您没有时间,则在玩家完成时,您将永远无法获得正确的结果。
如果我们假设玩家根本不进行多重调整,那么请使用以下算法:
发表评论,如果您有疑问,我会编辑/完成我的回答