Mysql 选择最大连续记录(有间隙)

标签 mysql select count max

我在选择连续记录时遇到问题,我想我已经指出了问题。我认为这与 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/

相关文章:

php - 如果我有 id 如何知道在哪个页码?

c# - 如何以C#形式显示mysql表中的数据?

mysql - 检查新用户名是否不在两个单独的表中

jquery - 使用 jquery 样式化选择字段?

C++ 字符串操作/输入

mysql - 连接表中没有行引用其连接的表中的任何行

mysql - #1366 - 我的 nginx 服务器中的整数值 : '' for column. 不正确。 (mysql模式)

MySQL 删除 SELECT 上的重复行数据

php - 如何计算数组中重复项的出现次数

MySQL:列出一个学期注册超过 6 个(不同)类(class)的学生(Sname)