2016-06-01 9 views
0

Derzeit habe ich die folgende Grafikdatenbank in neo4j, mit Hunderttausenden von "Kunden" (also gibt es Hunderttausende dieses Layouts in meiner neo4j-Datenbank).Wie kann ich zählen, wie oft ich ein Ergebnis in neo4j bekomme?

graph databse layout

Derzeit Ich verwende die folgende Abfrage:

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; 

Und ich bekomme Ergebnisse wie folgt aus (mit Ausnahme nur für den Monat Januar als "dateissued") 2

I Ich möchte zählen, wie oft ich bekomme, dass eine monatliche Zahlung größer als 1000 ist, aber die count (x) -Abfrage in der Chiffre funktioniert nur, um Dinge zu zählen, die sich auf einen einzelnen Knoten beziehen, nicht auf Knoten. Wie kann ich über alle meine Daten hinweg zählen?

Antwort

0

COUNTist zum Zählen von Dingen "über Knoten".

Diese einfache Abfrage sollten Sie geben eine Zählung der Anzahl von l.installment Werte> 1000:

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

Was bedeutet * in COUNT (*)? (Ich fange gerade mit neo4j an) – Aly

+1

In diesem Fall bedeutet es "Zähle die Anzahl der Ergebniszeilen". Aber Sie sollten sich über [aggregation] (http://neo4j.com/docs/developer-manual/current/#query-aggregation) informieren, um zu verstehen, was in anderen Situationen passiert, wenn es "Schlüsselwerte" gibt. – cybersam

0

Antwort cybersam das richtig ist, können Sie es auf diese Weise tun:

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

Da Sie Suchen Sie nach l.installment>1000 dann geben Sie einfach die Nummer l zurück, die diese Bedingung erfüllen.

Verwandte Themen