0
私は以下のグラフを示し、a1から始まるリーフノードのすべての金額の合計を得ることに興味があります。パスのサブセット上のCypher集約
しかし、CYPHERでそれを考慮にすべてのパスを取り、最終的な結果は、24の代わりに12 SUMクエリを使用しています。 など。
match (:A {name:'a1'})<-[:BA]-(:B)-[:BC]->(c:C)-[cd:CD]->(d:D)
return d.name, SUM(cd.amount)
クエリはどのように見えるのですか?
ここにグラフを作成するためのサイファーがあります。
ノード:
create (a1:A {name:'a1'}), (b1:B {name:'b1'}), (b2:B {name:'b2'}),
(c1:C {name:'c1'}), (c2:C {name:'c2'}), (d1:D {name:'d1'})
当該rels: '明確な' ヒントの@TimKuehnへ
match (a1:A {name:'a1'}), (b1:B {name:'b1'}), (b2:B {name:'b2'}),
(c1:C {name:'c1'}), (c2:C {name:'c2'}), (d1:D {name:'d1'})
merge (a1)<-[:BA]-(b1)
merge (a1)<-[:BA]-(b2)
merge (b1)-[:BC]->(c1)
merge (b1)-[:BC]->(c2)
merge (b2)-[:BC]->(c1)
merge (b2)-[:BC]->(c2)
merge (c1)-[:CD {amount: 5}]->(d1)
merge (c2)-[:CD {amount: 7}]->(d1)
SUM、CDDのRETURN dnameのように(CD)DISTINCT、dnameのAS d.nameと」と "(cd.amount)SUM、dnameのようd.name戻る" 交換してみてください(cdd.amount) " –
ありがとう@TimKuehn。 'distinct'は 'with'の後の最初のキーワードである必要があります。これは動作します: が一致します(:A {名前: 'a1'})< - [:BA] - (:B) - [:BC] - >(c:C) - [cd:CD] - >(d :D) 別名d.name AS dname、cd RETURN dname、SUM(cd.amount)as total – superkruger