Этот вопрос является продолжением ответа, приведенного здесь Поиск наиболее последовательных побед в регби
@ cybersam
Моя программа для матча EPL.
но моя структура базы данных точно такая же
Моя проблема в том, что это не дает требуемого вывода.
Я попробовал это в своей базе данных, и это дает вывод как - Манчестер объединился с 14 побед подряд.
должно быть 18.
Это набор данных
и пробный код
Round,Date,Team 1,FT,HT,Team 2
1,(Fri) 11 Aug 2017 (32),Arsenal FC,4-3,2-2,Leicester City FC
MATCH (t:Team)<-[r]-(g:Match)-[r2]->(t2)
WITH t, r.Ftaway_goal > r2.Fthome_goal AS isWin ORDER BY g.Date, g.Round
RETURN t, REDUCE(s = {max: 0, c: 0, prev:false}, w IN COLLECT(isWin) |
CASE WHEN w
THEN {
c: CASE WHEN s.prev THEN s.c+1 ELSE 1 END,
max: CASE WHEN s.max <= s.c
THEN CASE WHEN s.prev
THEN s.c+1
ELSE CASE WHEN s.max = 0 THEN 1 ELSE s.max END END
ELSE s.max END,
prev: w}
ELSE {c: 0, max: s.max, prev: w} END).max AS maxConsecutiveWins
order by maxConsecutiveWins DESC
limit 1
Корпусная часть кода, которую я понимаю, но, похоже, не могу понять, почему некоторые победы не проверяются.
Первоначально я думал, что это проблема с подсчетом совпадений на выезде, но это не так.
Пожалуйста помоги. спасибо