1

我正在尝试返回一个关系属性(称为proportion)加上该属性的总和,用于与 Neo4j 中的 Cypher 查询匹配的所有关系。我已经做到了这一点:

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     |
+-----------------+

作为 Cypher 的初学者,我不确定如何处理这个查询;我显然没有reduce正确使用。任何意见,将不胜感激。

4

1 回答 1

7

您需要使用WITH将查询分成两部分:

  1. 找到所有比例的总和,并将其作为绑定名称传递给下一部分
  2. 找到个人比例

.

START alice=node(3)
MATCH alice<-[r:SUPPORTED_BY]-() 
WITH sum(r.proportion) AS total 
MATCH alice<-[r:SUPPORTED_BY]-(other) 
RETURN other.name, r.proportion, total
于 2013-09-24T11:20:34.493 回答