我在选择连续记录方面遇到了麻烦,我想我已经指出了这个问题。我认为这与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
让我知道它是否总是有效:)