这个问题是@ Finding the most consecutive wins in a rugby league the在这里给出的答案的后续。
我的节目是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我所理解的代码的案例部分,但我似乎不明白为什么有些胜利没有被对照。最初,我认为这是一个问题,它只是计数的away_team比赛,但不是。请帮助。谢谢
发布于 2019-01-04 19:57:48
您的数据结构与original question中的数据结构不同。
Ftaway_goal和Fthome_goal属性有不同的名称。因此,您的查询的r.Ftaway_goal > r2.Fthome_goal测试只是考虑客场游戏尽可能获胜。
如果您在家庭游戏和客场游戏中都使用了一致的属性名(如goal ),那么r.goal > r2.goal测试将考虑这两种类型的游戏。
https://stackoverflow.com/questions/54044370
复制相似问题