我想确定与认识特定人的邻居的对话持续时间的相对百分比。
例如,当首先观察节点 A 时,我们必须知道他花了多少时间与他的所有邻居交谈,这是通过以下查询执行的:
neo4j-sh (0)$ start a = node(351061) match (a)-[r:TALKED_TO]->(b) return sum(r.duration)
==> +-----------------+
==> | sum(r.duration) |
==> +-----------------+
==> | 12418 |
==> +-----------------+
==> 1 row, 0 ms
接下来,我们必须检查他的哪些邻居认识特定的人(例如 c),并仅将 b 认识 c 的 a 和 b 之间的对话持续时间相加:
neo4j-sh (0)$ start a = node(351061) match (a)-[r:TALKED_TO]->(b)-[p:KNOWS]->(c) return sum(r.duration)
==> +-----------------+
==> | sum(r.duration) |
==> +-----------------+
==> | 21013 |
==> +-----------------+
==> 1 row, 0 ms
这里似乎不合逻辑的是,第二个总和大于第一个,而第二个应该只是第一个的一部分。有谁知道获得这样的结果可能是什么问题?该错误出现在 15000 个用户中的 7 个用户上。