Neo4j 聚合和求和

Neo4j aggregation and sum

如果我的问题很琐碎,我深表歉意,我是 neo4j 的菜鸟。

我正在尝试编写一个密码查询,它将从 [sum ( mass_of * contains ) 的值中找到所有紫色节点 desc 顺序,对于从紫色到红色的所有路径]

示例: 在图片中,所有红色路径都是 [( mass_of * 包含 )],然后对所有红色路径求和。

我从这个查询开始,但我不确定从这里去哪里。

MATCH p0=(p:Purple)-[m:mass_of]->(g:Green)-[c:contains]->(r:red {name: "something"})
WITH m, c.amount * m.amount as total_per_path
WITH total_per_path, reduce( total=0, node IN collect(m)| total + total_per_path) AS total_something
RETURN total_something as TOTAL, total_per_path as PER_TOTAL_PATH

...

感谢您的帮助。

应该这样做

MATCH (p:Purple)-[m:mass_of]->(g:Green)-[c:contains]->(r:red {name: "something"})
RETURN p, SUM(c.amount * m.amount) AS total
ORDER BY total DESC

如果您需要 nodes/relationships,您也可以在 return 中收集 m、g 或 c。