Neo4j 如何对按某个谓词分组的属性求和

Neo4j 如何对按某个谓词分组的属性求和,neo4j,cypher,Neo4j,Cypher,我有许多这种形式的节点和关系: (e:Employee)-[r:charged_project{hours:10}]>(p:project{name:Foo”) 我如何制定一个查询,为我提供所有项目的列表,以及对这些项目收费的总小时数?(即,入站:收费项目关系上所有“小时”属性的总和)您可以使用sum函数对结果集进行聚合,并计算小时总数: MATCH (p:Project)<-[r:charged_project]-() RETURN p.name, sum (r.hours) MATC

我有许多这种形式的节点和关系:

(e:Employee)-[r:charged_project{hours:10}]>(p:project{name:Foo”)


我如何制定一个查询,为我提供所有项目的列表,以及对这些项目收费的总小时数?(即,入站:收费项目关系上所有“小时”属性的总和)

您可以使用
sum
函数对结果集进行聚合,并计算小时总数:

MATCH (p:Project)<-[r:charged_project]-() RETURN p.name, sum (r.hours)

MATCH(p:Project)因此按项目进行聚合…这里如何?
sum
是一个聚合函数。另一个返回表达式
p.name
不是,因此它将用于对结果进行分组。请考虑隐式的
groupby
由所有非聚合函数的表达式执行。