【发布时间】:2021-11-11 04:25:04
【问题描述】:
我想通过与根的距离获得一些汇总统计信息。例如,
(A)-[值:20]->(B)-[值:40]->(C)
(A)-[值:0]->(D)-[值:20]->(E)
CREATE (:firm {name:'A'}), (:firm {name:'B'}), (:firm {name:'C'}), (:firm {name:'D'}), (:firm {name:'E'});
MATCH (a:firm {name:'A'}), (b:firm {name:'B'}), (c:firm {name:'C'}), (d:firm {name:'D'}), (e:firm {name:'E'})
CREATE (a)-[:REL {value: 20}]->(b)->[:REL {value: 40}]->(c),
(a)-[:REL {value: 0}]->(d)->[:REL {value: 20}]->(e);
我想得到A的直接邻居和第2层邻居的平均值,即,
+-------------------+
| distance | avg |
+-------------------+
| 1 | 10 |
| 2 | 30 |
+-------------------+
我该怎么做?我已经尝试了以下
MATCH p=(n:NODE {name:'A'})-[r:REL*1..2]->(n:NODE)
RETURN length(p), sum(r:value);
但是我不确定如何对变长路径r进行操作。
同理,是否可以得到累计值?即,
+-------------------+
| name | cum |
+-------------------+
| B | 20 |
| C | 60 |
| D | 0 |
| E | 20 |
+-------------------+
【问题讨论】: