2014-06-28 3 views
2

J'ai des noeuds de compte et de transaction, et une relation reçu_from entre eux. Dans un scénario où le compte A a reçu 1 transaction de B et C a reçu 10 transactions de B. Je veux visualiser ceci non pas avec 10 lignes de B vers C, mais avec une flèche plus épaisse et une étiquette de compte.Comment agréger des comptes de relations dans Neo4j

Comment est-ce que j'écrirais une telle requête afin que j'obtienne le compte de chaque type de relation entre les noeuds au lieu d'une liste de toutes les relations?

Répondre

3

Je suppose que chaque noeud de compte a une propriété acct_id indexée en utilisant CREATE INDEX ON :Account(acct_id).

Vous pouvez utiliser une requête Cypher à des chiffres agrégés de la relation:

OPTIONAL MATCH (start:Account {acct_id:'C'})-[r:RECEIVED_FROM]->(end:Account {acct_id:'B'}) 
RETURN start.acct_id, end.acct_id, type(r) as type, count(r) as thickness 

N.B. Dans le cas où vous ne voulez pas une ligne de résultat s'il n'y a pas de relation entre start et end, vous pouvez omettre OPTIONAL. Avec OPTIONAL l'épaisseur pour les noeuds non liés est 0.

Questions connexes