Neo4j/Cypher:计算与模式匹配的不同节点组合
我在Neo4j图中查询路径。路径包含两个以上的节点。我想计算两节点子路径的不同出现次数 因此,在下面的示例中,我想知道结果行的数量:Neo4j/Cypher:计算与模式匹配的不同节点组合,neo4j,cypher,Neo4j,Cypher,我在Neo4j图中查询路径。路径包含两个以上的节点。我想计算两节点子路径的不同出现次数 因此,在下面的示例中,我想知道结果行的数量: MATCH ()-->(n1:Label1)-->(n2:Label2)-->() RETURN DISTINCT n1, n2 比如说 RETURN count(DISTINCT n1, n2) (这将适用于单个节点:返回计数(不同的n1)) 如何在Cypher中执行此操作?执行此操作以获取找到每个不同的n1和n2组合的次数: MATCH
MATCH ()-->(n1:Label1)-->(n2:Label2)-->()
RETURN DISTINCT n1, n2
比如说
RETURN count(DISTINCT n1, n2)
(这将适用于单个节点:返回计数(不同的n1)
)
如何在Cypher中执行此操作?执行此操作以获取找到每个不同的
n1
和n2
组合的次数:
MATCH ()-->(n1:Label1)-->(n2:Label2)-->()
RETURN n1, n2, COUNT(*);
与COUNT
一样,将同一中的非聚合项与或RETURN
子句一起用作唯一的“分组键”(因此无需使用DISTINCT
)
[更新]
要获得不同的n1
和n2
组合的数量,您可以在这个有点粗糙的查询中聚合两次:
MATCH ()-->(n1:Label1)-->(n2:Label2)-->()
WITH n1, n2, COUNT(*) AS ignored
RETURN COUNT(*) AS nCombos;
你能解释一下Label1和Label2吗?示例-连接到城市节点的人?示例可以是:(:City)(n2:Person)-[:LIVES-IN]->(:City)
我正在寻找一个查询,以回答以下问题:有多少唯一(n1
,n2
)元组与上述模式匹配?谢谢您的建议!此代码段为每个唯一的n1、n2
组合生成一个表,其中包含一行,并在count(*)
列中统计不同组合的出现次数。然而,我对计算唯一的n1,n2
组合的单个数字感兴趣,因此您建议中的行数。