如何从neo4j路径获得总和或提取值的总和?我不能直接使用sum函数

时间:2017-02-20 14:28:42

标签: neo4j cypher graph-databases

enter image description here

--- sum(extract(b IN nodes(p)| b.userReputation))AS UserRep ---

这是我想要找到的价值,谢谢!

2 个答案:

答案 0 :(得分:1)

sum是一个聚合函数,因此它在结果集上创建作业,而不是在数组上。 你想要做的是reduce

你能试试这个:reduce(s = 0, x IN extract(b IN nodes(p)| coalesce(b.userReputation, 0)) | s + x) AS UserRep

干杯

答案 1 :(得分:0)

对集合中的项执行求和的另一种方法是使用UNWIND子句。例如,您可以将原始RETURN子句替换为:

UNWIND NODES(p) AS nd
RETURN p, SUM(nd.userReputation) AS userRep;

注意:上述RETURN子句也会返回p,因此aggregation函数SUM会聚合适当的"键值"。你可能想要返回p,以便你知道每个总和的路径。