1
我试图返回一个关系属性(称为proportion
)加上在Neo4j中由Cypher查询匹配的所有关系的属性总和。这一步我已经得到了:Neo4j密码查询返回关系属性和所有匹配关系属性的总和
START alice=node(3)
MATCH p=(alice)<-[r:SUPPORTED_BY]-(n)
RETURN reduce(total=0, rel in relationships(p): total + rel.proportion), sum(r.proportion) AS total;
这将返回:
+-----------------+
| reduced | total |
+-----------------+
| 2 | 2 |
| 1 | 1 |
+-----------------+
,我期待:
+-----------------+
| reduced | total |
+-----------------+
| 2 | 3 |
| 1 | 3 |
+-----------------+
作为暗号的初学者设计的,我真的不知道怎么样接近这个查询;我显然没有正确使用reduce
。任何意见,将不胜感激。
作为一个解释,你原来的查询的问题是,sum()总是执行一个聚合(即groupBy),在你的情况是第一列。 – PhilBa
+1 Reduce主要用于可变长度路径或集合 - 如果您已经获得了不同“中间结果”或“行”中的值,则可以使用标准聚合函数,如下所示。 –