Neo4j 使用cypher查询生成聚合边

Neo4j 使用cypher查询生成聚合边,neo4j,cypher,Neo4j,Cypher,假设我的根节点为:A和B,完整关系路径为: A -- knows ---C --sell(amt=100,date=jan08) -- G A -- knows ---C --sell(amt=200,date=jan08) -- G A -- knows ---C --sell(amt=300,date=feb08) -- G A -- knows ---D --sell(amt=1100,date=mar08) -- H B -- knows ---E --sell(amt=1400,da

假设我的根节点为:A和B,完整关系路径为:

A -- knows ---C --sell(amt=100,date=jan08) -- G
A -- knows ---C --sell(amt=200,date=jan08) -- G
A -- knows ---C --sell(amt=300,date=feb08) -- G
A -- knows ---D --sell(amt=1100,date=mar08) -- H

B -- knows ---E --sell(amt=1400,date=dec08) -- I
B -- knows ---E --sell(amt=2400,date=nov08) -- I
B -- knows ---E --sell(amt=300,date=dec08) -- I
B -- knows ---F --sell(amt=1700,date=apr08) -- J
其中,A,B将rootName作为属性,而所有其他C,G,D,H,E,I,F,J将customerName作为属性

现在我想创建边,如:

C-- jan08(Tamt=300) --G
C-- feb08(Tamt=300) --G
D-- mar08(Tamt=1100) --H

E-- dec08(Tamt=1700) --I
E-- nov08(Tamt=2400) --I
F-- apr08(Tamt=1700) --J
如果让我们传递所有根节点(A、B等),那么它将创建边groupBy MMM YY,并将sum(amount)作为该边的属性。对google group有了一个想法。但不知道如何自动执行查询,以便为所有根-子节点创建聚合边

我试过:

START customerName=node(483), b = node(485, 498, 500)
MATCH customerName-[s:Sell]->b
WITH s.transactionDate AS date, customerName, b, sum(s.transactionAmount) AS total 
CREATE customerName-[:sales_summary { date:date, tamt:total }]->b
这里介绍如何用日期(MMM YY格式)边缘替换销售摘要边缘

[其中,A、B的属性为rootName,而所有其他C、G、D、H、E、I、F、J的属性为customerName。因此,在查询中customerName和B实际上都是 客户]

但是在上面的例子中,我必须一个接一个地手动传递companyName和b。是否有任何方法可以一次性通过所有companyName-->Sell-->b。因此,它自动查询并根据匹配条件构建边


干杯,

您能在中设置您的模型吗?这样可以更轻松地处理查询事实上,我有graphml.xml格式的数据模型。