Mysql Select Max Contorytive Records (с пробелами) - PullRequest
0 голосов
/ 16 февраля 2019

У меня проблемы с выбором последовательных записей, и я думаю, что я указал проблему.Я думаю, что это было связано с переходом в поле идентификатора.

Я настроил некоторые примеры данных здесь: 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).

Он отлично работает с большинством игроков, но я получаю неожиданные результаты с некоторыми избранными.Покопавшись, я заметил, что это может быть скачок в полях идентификаторов определенных записей.Мне нужно как-то игнорировать пробелы.

Если у кого-то есть решение или он может указать мне правильное направление, это было бы здорово.

Спасибо.

1 Ответ

0 голосов
/ 16 февраля 2019

Мне кажется, что следующий запрос работает:

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

Дайте мне знать, если это не всегда работает:)

...