I have the same types of nodes in a Neo4j graph. I want to return node value sums. Below is an example graph:
I want to return them in such a way that node values (val
s) are summed w.r.t alias
and name
fields.
[
{"name": "a", "val": 120},
{"name": "b", "val": 60}
]
The first object summed nodes with name
value x
, y
, and a
because x
and y
had an alias field with value a
.
Update:
Indeed, val
property in the nodes represents number of RELATED_TO
relationships that a node has. I wanted to abstract that for simplifying the question. The real scheme is as shown below. Every white node has several RELATED_TO
relationships to green nodes. How can I map the number of such relationships to terminal nodes (summing val
fields)?
CodePudding user response:
this should do it
MATCH (n)
RETURN COALESCE(n.alias, n.name) AS name, sum(n.val) AS val
CodePudding user response:
Given your update you can count the relationships summed over alias or name by
MATCH (n)<-[rel:RELATED_TO]-()
RETURN COALESCE(n.alias, n.name) AS name, count(rel) AS cnt