neo4j - 如何展示连续“获胜”最多的球队。在 epl 比赛中 Neo4j
问题描述
这个问题是对 @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
我理解代码的案例部分,但我似乎无法弄清楚为什么没有针对它检查某些胜利。最初我认为只计算 away_team 比赛是个问题,但事实并非如此。请帮忙。谢谢
解决方案
您的数据结构与原始问题中的数据结构不同。
Ftaway_goal
和Fthome_goal
属性具有不同的名称。因此,您的查询r.Ftaway_goal > r2.Fthome_goal
测试仅将客场比赛视为可能获胜。
如果您goal
对主客场比赛使用一致的属性名称,例如 ,那么r.goal > r2.goal
测试将考虑这两种类型的比赛。
推荐阅读
- android - 将 Kotlin ByteArray 保存到领域
- php - 试图在 laravel 5.8 中获取非对象的属性
- ios - 如何通过长按按钮进行递归函数调用
- django - 相关名称不适用于 django 多对多字段 django
- reactjs - React-native-fast-images 无法使用
- css - 单击按钮时如何设置状态挂钩并更改css类
- java - 我正在尝试找到一种方法来处理键“movieID”的“1”重复条目的错误 1062
- javascript - 如何使用 javascript 转换此 sql 查询?
- python - 如何在 C 或 Python 中实时读取多个串口
- awk - awk sub/gsub 2 个匹配项之间的子字符串,重复结束分隔符