2016-06-01 3 views
0

현재 neo4j에는 수십만 개의 "고객"그래프 데이터베이스가 있습니다 (따라서 neo4j 데이터베이스에 수십만 개의 레이아웃이 있습니다).neo4j에서 결과를 얻은 횟수는 어떻게 계산합니까?

graph databse layout

현재, 나는 다음과 같은 쿼리를 실행하고 있습니다 :

MATCH (m:Member)-[r:ACTIVITY{issue_d:"16-Jan"}]->(l:Loan) 
MATCH (m)-[:ACTIVITY]->(p:Payments) 
MATCH (m)-[:HISTORY]->(c:CreditHistory) 
WHERE NOT p.total_pymnt=0 
RETURN l.funded_amnt, 
     p.total_pymnt, 
     (l.funded_amnt)-(p.total_pymnt) AS amountowed, 
     r.issue_d AS dateissued, 
     l.installment AS monthlypayment, 
     l.int_rate AS interestrate, 
     c.dti AS debt 
ORDER BY (l.funded_amnt)-(p.total_pymnt) DESC 
LIMIT 50000; 

을 그리고 난 같은 결과를 얻을 2

I (단지 "dateissued"년 1 월을 제외하고) 다음 매월 paypayment가 1000을 초과하는 횟수를 계산하고 싶지만 Cypher의 count (x) 쿼리는 노드를 통틀어 단일 노드와 관련된 것만 계산하지 않습니다. 내 모든 데이터를 어떻게 계산합니까?

답변

0

COUNT은 "노드 간"수를 계산할 때입니다.

이 간단한 쿼리는 당신에게 l.installment 값의 수의 카운트> 1000 주어야한다 :

MATCH (l:Loan) 
WHERE l.installment > 1000 
RETURN COUNT(*); 
+0

*의 COUNT (*)는 무엇을 의미합니까? (저는 방금 neo4j로 시작합니다) – Aly

+1

이 경우 "결과 행 수를 센다"는 의미입니다. 그러나 "키 값"이있는 다른 상황에서 어떤 일이 일어나는지 이해하려면 [집계] (http://neo4j.com/docs/developer-manual/current/#query-aggregation)를 읽어야합니다. – cybersam

0

cybersam의 대답은 권리를, 당신도 이런 식으로 할 수 있습니다 : 당신 이후

MATCH (l:Loan) 
WHERE l.installment > 1000 
RETURN COUNT(l); 

l.installment>1000을 검색하면 해당 조건을 만족하는 l의 번호 만 반환합니다.

관련 문제