Cypher查询重复关系模式的聚合数据

时间:2014-12-14 16:12:33

标签: neo4j cypher

我很高兴收到您对查询的建议,如下图所示。

有四方(ID为0-3,橙色),我想提供有关参与者如何参与各方的汇总数据。

查询应提供以下数据:有多少独特参与者参加了1,2,3或4个派对?并且,他们去了哪些方面? (或者:不同的派对组合是什么?)

输出示例(不基于下图,仅用于说明输出)

参与方ID组合 0,2,3 |总共3个方| 5名参与者

参与方ID组合 0,1,2 |总共3个方| 4名参与者

缔约方身份证组合1,3 |共有2方| 3名参与者

我意识到解决方案可能是测试每个参与者的阵列集合(=派对组合),但我不确定如何实现它,并且它听起来并不是非常有前途的表现。

感谢您的帮助 - 提前感谢!

parties

1 个答案:

答案 0 :(得分:0)

这很难。不确定如何在一个查询中执行此操作,但我认为您可以使用四个查询执行此操作。这将是三方匹配的一个例子:

MATCH (party1:Party), (party2:Party), (party3:Party)
WHERE ID(party1) < ID(party2) AND ID(party2) < ID(party3)
WITH [ID(party1), ID(party2), ID(party3)] AS party_ids
MATCH (party:Party)<-[:PARTICIPATED]-(participant)
WHERE ID(party) IN (party_ids)
RETURN party_ids, count(DISTINCT participant)