在 Neo4j 中,聚合(Aggregation)是对数据进行计算、汇总和统计的过程。以下是一些使用聚合函数的常见例子,以及它们的解释:
计算节点数量:
sql
MATCH (p:Person)
RETURN count(p) AS totalPersons;
这个查询会计算具有 "Person" 标签的节点的数量,并将结果作为 "totalPersons" 返回。
计算属性的总和:
sql
MATCH (p:Person)
RETURN sum(p.age) AS totalAge;
这个查询会计算所有 "Person" 节点的年龄属性的总和,并将结果作为 "totalAge" 返回。
查找最大值和最小值:
sql
MATCH (m:Movie)
RETURN max(m.released) AS maxYear, min(m.released) AS minYear;
这个查询会查找所有电影节点的 "released" 属性的最大值和最小值,并将结果分别作为 "maxYear" 和 "minYear" 返回。
计算平均值:
sql
MATCH (p:Person)
RETURN avg(p.age) AS averageAge;
这个查询会计算所有 "Person" 节点的年龄属性的平均值,并将结果作为 "averageAge" 返回。
分组计数:
sql
MATCH (p:Person)-[:ACTED_IN]->(m:Movie)
RETURN m.title, count(p) AS actorsCount;
按属性值分组并计算总和:
sql
MATCH (p:Person)
RETURN p.country, sum(p.age) AS totalAgeByCountry
ORDER BY totalAgeByCountry DESC;
这个查询会按照 "country" 属性值进行分组,并计算每个国家的年龄总和,然后按总和降序排列返回结果。