Mysql选择最大连续记录(有差距)

问题描述 投票:0回答:1

我在选择连续记录方面遇到了麻烦,我想我已经指出了这个问题。我认为这与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字段中的跳转。我需要以某种方式忽略这些差距。

如果有人有解决方案,或者可以指出我正确的方向,那将是非常棒的。

谢谢。

mysql select count max
1个回答
0
投票

以下查询似乎对我有用:

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

让我知道它是否总是有效:)

© www.soinside.com 2019 - 2024. All rights reserved.