这是(Neo4j: Filter nodes based on aggregate function)
的扩展假设我有一组客户节点和每个客户与这些节点关联的一组订单。每个订单节点都有两个与之关联的属性:成本和放置订单的商店。我想提取那些在storeA的平均订单超过300但同时他在商店B的平均订单低于100的客户。这是我的(无效)尝试这样做:
MATCH (n0:Customer)-[]->(n1:Order {store: 'storeA'})
WITH n0, avg(n1.cost) as average_storeA WHERE average_storeA > 300
WITH (n0:Customer)-[]->(n2:Order {store: 'storeB'})
WITH n0, avg(n2.cost) as average_storeB where average_storeB < 100
return n0
问题在于,在第3行中,WITH语句返回一个错误,它不知道n2
的含义。如何将前一个匹配语句的结果传递给引入新节点查询/变量的新匹配语句?我想你可以尝试两个独立的匹配查询,然后找到节点集之间的交集,但这应该比在已经过滤的节点集上应用第二个过滤器慢得多。
答案 0 :(得分:1)
而不是第3行中的from django.shortcuts import render
def current_datetime(request):
now = datetime.datetime.now()
return render(request, 'admin/current_datetime.html', {'current_date':now})
,您应使用之前的public class IncidentReporter {
public void reportIncident(Class<?>... differentClasses) {
}
}
变量WITH
新模式,如下所示:
MATCH