我在选择连续记录时遇到问题,我想我已经指出了问题。我认为这与 id 字段的跳转有关。
我在这里设置了一些示例数据: https://www.db-fiddle.com/f/fqSixe8TBPu7s7Ko22ySmr/0
基本上,我使用以下代码返回玩家最大连续获胜次数:
set @player=0, @count=0;
select max(@count := if(outcome = 2 and player = 785, @count+1, 0))
from cc6_MensLeague_rounds use index(maxcon);
以上示例数据的结果是 13(应该是 24)。
它对大多数玩家来说都工作得很好,但我对少数玩家却得到了意想不到的结果。经过一番研究后,我注意到这可能是某些记录的 id 字段中的跳转。我需要以某种方式忽略这些差距。
如果有人有解决方案,或者可以为我指出正确的方向,那就太棒了。
谢谢。
最佳答案
以下查询似乎对我有用:
SET @count=0;
SELECT max(@count := if(outcome = 2, @count+1, 0)) AS MAX_CONSECUTIVE_WINS
FROM
(SELECT *
FROM cc6_MensLeague_rounds
WHERE player = 785
ORDER BY date ASC) AS Temp
如果它并不总是有效,请告诉我:)
关于Mysql 选择最大连续记录(有间隙),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54721074/