Neo4j:基于聚合函数过滤节点

时间:2017-08-09 23:03:50

标签: neo4j cypher

假设我有一个客户节点列表和每个客户放置的订单列表,表示为与这些客户节点关联的订单节点。每个订单都有一个与之关联的成本数字属性。

我想要归还那些平均订单大于阈值的客户。以下是一些不起作用的代码,它代表了我想要的东西:

MATCH (n0:Customer)-[]-(n1:Order)
WITH n1.cost as cost
WHERE avg(cost) > 300
RETURN n0, avg(cost)

但当然这不太对。我应该怎么做呢?

1 个答案:

答案 0 :(得分:2)

你所拥有的是关闭的,你只需要在WITH语句中进行聚合,而不是WHERE子句

MATCH (n0:Customer)-[]-(n1:Order)
WITH n0, avg(n1.cost) AS cost WHERE cost > 300
RETURN n0, cost