как вывести команду с самой последовательной «победой». в эпл матче neo4j - PullRequest
0 голосов
/ 04 января 2019

Этот вопрос является продолжением ответа, приведенного здесь Поиск наиболее последовательных побед в регби @ 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

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

1 Ответ

0 голосов
/ 04 января 2019

Ваша структура данных не идентична структуре в оригинальном вопросе .

Свойства Ftaway_goal и Fthome_goal имеют разные имена. Поэтому в тесте r.Ftaway_goal > r2.Fthome_goal по вашему запросу учитываются только выездные игры в качестве возможных побед.

Если вы использовали непротиворечивое имя свойства, такое как goal, для домашних и выездных игр, тогда в тесте r.goal > r2.goal будут учитываться оба типа игр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...