在 Neo4j 中,聚合(Aggregation)是對數據進行計算、匯總和統計的過程。以下是一些使用聚合函數的常見例子,以及它們的解釋:
計算節點數量:
MATCH (p:Person)
RETURN count(p) AS totalPersons;
這個查詢會計算具有 "Person" 標簽的節點的數量,并將結果作為 "totalPersons" 返回。
計算屬性的總和:
MATCH (p:Person)
RETURN sum(p.age) AS totalAge;
這個查詢會計算所有 "Person" 節點的年齡屬性的總和,并將結果作為 "totalAge" 返回。
查找最大值和最小值:
MATCH (m:Movie)
RETURN max(m.released) AS maxYear, min(m.released) AS minYear;
這個查詢會查找所有電影節點的 "released" 屬性的最大值和最小值,并將結果分別作為 "maxYear" 和 "minYear" 返回。
計算平均值:
MATCH (p:Person)
RETURN avg(p.age) AS averageAge;
這個查詢會計算所有 "Person" 節點的年齡屬性的平均值,并將結果作為 "averageAge" 返回。
分組計數:
MATCH (p:Person)-[:ACTED_IN]->(m:Movie)
RETURN m.title, count(p) AS actorsCount;
按屬性值分組并計算總和:
MATCH (p:Person)
RETURN p.country, sum(p.age) AS totalAgeByCountry
ORDER BY totalAgeByCountry DESC;
這個查詢會按照 "country" 屬性值進行分組,并計算每個國家的年齡總和,然后按總和降序排列返回結果。