2017-01-25 2 views
0

Neo4j의 사이퍼 멍청한 놈.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

시도 횟수를 표시합니다. 오 C의 이, 오, CP의 DESC LIMIT 1 RETURN으로 C CP ORDER로 (p)를 계산 : (제품 페이지), –

+0

MATCH (C : 고객) - ->> (O 순서) 이 사람은 자신의 가장 큰 주문을 한 고객에게만 반환합니다. 나는 모든 고객에게 똑같이 필요합니다. –

답변

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

그게 전부입니다. 고맙습니다! 최종 형식은 cp로 ORDER BY cp DESC WITH c, o, count (p) WITH c, collect ((제품)) 최종 형식은 '일치 (c : 고객) -> {order : o, count : cp})를 주문으로 사용합니다. RETURN c, 주문 [0] [ 'order'] as o' –

관련 문제