问题
How can I get difference between 2 fields: r.rating_val and rw.rating_val and sum of these fields using neo4j query?I really appreciate any help.
MATCH (a:user{id:"1"})-[r:`rating`]->(b),
(w:user{id:"3"})-[rw:`rating`]->(b)
RETURN DISTINCT b,r.rating_val ,rw.rating_val
回答1:
Just subtract/add them in the return clause
MATCH (a:user{id:"1"})-[r:`rating`]->(b),
(w:user{id:"3"})-[rw:`rating`]->(b)
RETURN DISTINCT b,
r.rating_val-rw.rating_val as difference,
r.rating_val+rw.rating_val as sum
回答2:
You can also use abs() function for difference.
MATCH (a:user{id:"1"})-[r:`rating`]->(b),
(w:user{id:"3"})-[rw:`rating`]->(b)
RETURN DISTINCT b,
abs(r.rating_val - rw.rating_val) as difference,
(r.rating_val + rw.rating_val) as sum
来源:https://stackoverflow.com/questions/30349125/get-difference-between-field-values-and-sum-in-neo4j