2017-01-25 2 views
0

ここにNeo4jのcypher noobがあります。それは愚かな質問ですが、私は、クエリを把握することはできません場合、私は彼らの最大の順序(ほとんどの製品と順)neo4jの北風グラフですべてのお客様の最大の注文を得る方法

申し訳ありませんと、すべての顧客を取得したいのですが、デモのNorthwindグラフ、 を使用して

私の試み:

MATCH (c :Customer)-->(o :Order)-->(p :Product) 
WITH c,o, count(p) as cp ORDER BY cp DESC LIMIT 1 
RETURN c,o 

が、彼の最大のために一つだけの顧客を返すが、私は、それぞれの最大の順序を持​​つすべての顧客のリストを必要としています。

+0

あなたの試行に至るまでの距離を表示します。 –

+0

MATCH(C:顧客) - >(O:注文) - >(P:製品)C WITH は、O、 O、CPのDESC BY CP ORDER LIMIT 1 RETURN cとして(p)を数えますこの1つは彼の最大の注文を持つただ1つの顧客を返す、 私はすべての顧客のために同じが必要です –

答えて

2

制限は以前の結果全体に適用されるという問題があります。顧客ごとにcollectの注文とcpが必要です。例:

MATCH (c :Customer)-->(o :Order)-->(p :Product) 
WITH c, o, count(p) as cp ORDER BY cp DESC 
WITH c, collect({order: o, count: cp}) as orders 
RETURN c.companyName, 
     orders[0]['order'] as o, 
     orders[0]['count'] as cp 
ORDER BY cp DESC 
+0

それです。ありがとうございました! 最終フォームは、MATCH(c:Customer) - >(o:Order) - >(p:Product) と一致する必要があります。cpとしてc、o、count(p)をcp ORDER BY cp DESC WITH c、collect {order:o、count:cp})を注文します。 RETURN c、 orders [0] ['order'] as o' –

関連する問題