Neo4j / Cypher:计算与模式匹配的不同节点组合

时间:2019-05-23 14:14:46

标签: neo4j cypher

我在Neo4j图中查询路径。该路径包含两个以上的节点。我想计算两个节点子路径的不同出现次数。

因此在以下示例中,我想知道结果行的数量:

MATCH ()-->(n1:Label1)-->(n2:Label2)-->()
RETURN DISTINCT n1, n2

例如像

RETURN count(DISTINCT n1, n2)

(适用于单个节点:RETURN count(DISTINCT n1)

我该如何在Cypher中做到这一点?

1 个答案:

答案 0 :(得分:1)

执行此操作以获取找到每种不同的n1n2组合的次数:

MATCH ()-->(n1:Label1)-->(n2:Label2)-->()
RETURN n1, n2, COUNT(*);

Aggregating functions(例如COUNT)在同一WITHRETURN子句中使用非聚合项作为唯一的“分组键”(因此无需使用{{1} }。

[更新]

要获取不同的DISTINCTn1组合的数量,您可以在这个有点古怪的查询中进行两次汇总:

n2