5

我想知道为什么这被认为是 Neo4j 的 Cypher 中对聚合函数的无效使用:

MATCH (p:Project)-[:EMPLOYS]-(n:Person) SET p.youngest = MIN(n.age);

虽然以下被认为是一个有效的用例:

MATCH (p:Project)-[:EMPLOYS]-(n:Person) RETURN p.name, MIN(n.age) AS youngest;

我应该如何重写第一个查询以使其有效?

4

2 回答 2

10

至于“为什么”您最初的 Cypher 尝试不起作用,@mah 的答案确实有效:Cypher 只允许在WITHandRETURN子句中使用聚合函数。

于 2014-12-15T22:27:38.920 回答
8

对查询稍作更改即可使其工作:

MATCH (p:Project)-[:EMPLOYS]-(n:Person)
WITH p, MIN(n.age) AS min_age 
SET p.youngest = min_age;
于 2014-12-15T19:33:15.120 回答