Neo4j: Filter nodes based on aggregate function

时间秒杀一切 提交于 2019-12-08 01:48:33

问题


Suppose I have a list of customer nodes and a list of orders each customer has placed represented as order nodes associated to these customer nodes. Each order has a cost numeric property associated to it.

I want to return those customers, whose average order is greater than a threshold. Here is some non-functioning code that exemplifies what I want:

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

But of course this is not quite right. How should I go about it?


回答1:


What you have is close, you just need to do the aggregation in the WITH statement, not the WHERE clause

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


来源:https://stackoverflow.com/questions/45601919/neo4j-filter-nodes-based-on-aggregate-function

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!