溫馨提示×

Cypher聚合函數(shù)如何進行條件聚合

小樊
81
2024-10-31 23:33:31
欄目: 編程語言

在Cypher中,您可以使用聚合函數(shù)COLLECT()結(jié)合WITH子句和WHERE子句來實現(xiàn)條件聚合

假設(shè)您有一個名為Person的節(jié)點,其中包含屬性agecity,您想要根據(jù)城市對年齡進行條件聚合。您可以使用以下查詢:

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

在這個查詢中,我們首先使用MATCH子句找到所有的Person節(jié)點。然后,我們使用WITH子句將city屬性值和根據(jù)城市收集到的年齡列表(ages)傳遞給下一個WITH子句。在第二個WITH子句中,我們使用WHERE子句來過濾出只包含紐約市的數(shù)據(jù)。最后,我們返回城市和對應的年齡列表。

如果您想要對多個城市進行聚合,可以使用UNION來合并結(jié)果:

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將結(jié)果合并在一起。同時,我們還處理了其他城市的情況。

0