我正在尝试在具有双向关系的节点上运行一个密码查询,并希望对每个关系进行计数。
示例:
Nodes: store + customer
Relationships: sold + bought在理想的情况下,我希望看到商店和客户之间的关系。然而,有些情况下,只有客户报告他们从商店购买,反之亦然,当只有商店报告,他们出售给客户,但客户尚未核实出售。
我想返回以下内容:
*澄清:
例如,它将是10家商店,每个店有7-10个顾客,而在Neo则是两个不同的弧形连接:
目标是查看每一家商店的不同报告实践,因为有些商店可能会说他们在没有销售过的情况下销售,而顾客可能说他们购买了商品。这些场景中的每一种情况多久发生一次?
发布于 2019-03-26 15:46:19
你可以用这样的方法
match (n:Store)<-[r:bought]-(n1:Customer)<-[r1:sold]-(n) with count(distinct r) as verified
match (n:Store)<-[r:bought]-(n1:Customer) with verified, count(distinct r) - verified as boughtOnly
match (n:Store)-[r:sold]->(n1:Customer) with verified, boughtOnly, count(distinct r) - verified as soldOnly
return verified, soldOnly, boughtOnly查看要测试的虚拟数据库这里。
用where子句编辑更新查询并返回store信息
match (n:Store) where n.state = 'MA' and n.city = 'Boston' with n as Store
match (Store)<-[r:bought]-(n1:Customer)<-[r1:sold]-(n) with Store, count(distinct r) as verified
match (Store)<-[r:bought]-(n1:Customer) with Store, verified, count(distinct r) - verified as boughtOnly
match (Store)-[r:sold]->(n1:Customer) with Store, verified, boughtOnly, count(distinct r) - verified as soldOnly
return verified, soldOnly, boughtOnly, Store发布于 2019-03-28 14:56:27
就像这样简单:
MATCH (n:Customer)
RETURN
size((n)-[:BOUGHT|:SOLD]-()) AS bothRels,
size((n)-[:BOUGHT]-()) AS boughtRels,
size((n)-[:SOLD]-()) AS soldRels╒══════════╤════════════╤══════════╕
│"bothRels"│"boughtRels"│"soldRels"│
╞══════════╪════════════╪══════════╡
│2 │1 │1 │
└──────────┴────────────┴──────────┘https://stackoverflow.com/questions/55358157
复制相似问题