当前位置: 首页 > 知识库问答 >
问题:

匹配具有相同属性的节点之间的关系

林和畅
2023-03-14

我有以下图表:

CREATE (a:Node)
CREATE (b:Node)
CREATE (c:Node)
CREATE (d:Node)

CREATE (a)-[:rel {referenceId: 1234, amount: 2}]->(b)
CREATE (b)-[:rel {referenceId: 1234, amount: 1}]->(c)
CREATE (b)-[:rel {referenceId: 1234, amount: 0.5}]->(d)

CREATE (a)-[:rel {referenceId: 4567, amount: 4}]->(b)
CREATE (b)-[:rel {referenceId: 4567, amount: 1}]->(c)
CREATE (b)-[:rel {referenceId: 4567, amount: 3}]->(d)

我正在寻找一种方法来计算从a发送到b和从b发送到c/d的金额之间的差异,这取决于referenceId,但不使用特定的referenceId。

所以我在寻找像下面这样的半代码:

MATCH (a)-[in:rel]->(b)-[out:rel]->(c) WHERE in.referenceId == out.referenceId RETURN SUM(in.amount)-SUM(out.amount)

有人知道我该怎么做吗?

共有1个答案

邹举
2023-03-14

也许你需要按照参考ID来做?

  MATCH (a)-[in:rel]->(b)-[out:rel]->(c)
     WHERE in.referenceId = out.referenceId
  RETURN in.referenceId as referenceId, 
         SUM(in.amount)-SUM(out.amount) as diff

结果:

referenceId diff
4567        4
1234        2.5

你也可以这样做,所以你寻找非零差异:

MATCH (a)-[in:rel]->(b)-[out:rel]->(c)
  WHERE in.referenceId = out.referenceId
WITH in.referenceId as referenceId,
       SUM(in.amount)-SUM(out.amount) as diff
WHERE diff <> 0
RETURN referenceId, diff
 类似资料:
  • 我需要在所有具有相同属性值的节点之间创建关系。 例如,我可以使用以下查询: 但是如果我有大约200K的节点,这个脚本运行的时间相当长。 有没有其他更快的方法来建立这样的关系? 谢谢

  • 我正在创建一个简单的社交图,用户可以在其中创建一个帖子,标记它,并对它进行评论。我用py2neo做模型。该模型具有和作为节点。用户在上、或。在我的例子中,单个用户可以在单个上创建多个或(就像其他任何社交网络一样)。根据我的模型,这需要多个或关系,但具有不同的属性。模型是这样建立的: 我运行以下操作来构建图形: 我希望有两个关系,如下所示: 但我看到事实并非如此: 那么,我的问题是双重的。(1)可以

  • 从Neo4j 1.9开始。2,并使用Cypher查询语言,我希望在具有特定公共属性值的节点之间创建关系。我有一组具有属性H的节点G,在G节点之间当前不存在任何关系。 在Cypher语句中,是否可以按H属性值对G节点进行分组,并在成为同一组的每个节点之间创建关系HR?知道每个小组的人数在2人之间 我一直在努力管理这样的查询,但没有找到正确的语法。下面是一个小样本数据集: 最后,我希望有这样的关系:

  • 我是 D3 的新手。因此,我正在尝试呈现一个图形,其中两个或多个孩子可以具有相同的父级。我想知道如何使链接再次定向到同一节点?我有断开的链接.. 任何帮助都是巨大的。 这是我的代码...

  • 我已经实现了一个TreeModel来调整存量数据模型,以便将其可视化为JTree。我遇到了一个问题,节点有多个相同的子(叶)节点。例如,考虑一个JTree,它的叶节点是Strings。每当父节点包含具有相同String值的子节点时,就会出现问题。这些叶节点的TreePath是相同的,作为Strings,equals()返回true。留档明确地调用这个: JTree及其相关类广泛使用TreePath

  • 我一直在用PHP的SimpleXMLIterator处理XML数据。 在迭代一个子树(