温馨提示×

Cypher聚合函数如何进行条件聚合

小樊
82
2024-10-31 23:33:31
栏目: 编程语言

在Cypher中,您可以使用聚合函数COLLECT()结合WITH子句和WHERE子句来实现条件聚合

假设您有一个名为Person的节点,其中包含属性agecity,您想要根据城市对年龄进行条件聚合。您可以使用以下查询:

MATCH (p:Person)
WITH p.city AS city, COLLECT(p.age) AS ages
WHERE city = 'New York'
RETURN city, ages

在这个查询中,我们首先使用MATCH子句找到所有的Person节点。然后,我们使用WITH子句将city属性值和根据城市收集到的年龄列表(ages)传递给下一个WITH子句。在第二个WITH子句中,我们使用WHERE子句来过滤出只包含纽约市的数据。最后,我们返回城市和对应的年龄列表。

如果您想要对多个城市进行聚合,可以使用UNION来合并结果:

MATCH (p:Person)
WITH p.city AS city, COLLECT(p.age) AS ages
WHERE city IN ['New York', 'Los Angeles', 'Chicago']
WITH city, ages
RETURN city, ages
UNION
MATCH (p:Person)
WITH p.city AS city, COLLECT(p.age) AS ages
WHERE city = 'Other'
RETURN city, ages

在这个查询中,我们分别针对纽约市、洛杉矶和芝加哥的城市进行了聚合,然后使用UNION将结果合并在一起。同时,我们还处理了其他城市的情况。

0