例如,下面的场景:
医院节点与许多医生节点相关。医生节点与其他医生相关,当他们将病人转介给另一位医生时,代表他们。这些转诊可以转到另一家医院的医生那里。医生之间的关系有一个名为“计数”的财产,用来表示医生将病人转介给第二位医生的次数。
我想做的是从医院的角度来看待这些转诊关系。我的查询当前如下:
START hospital1 = Node:Hospitals("*:*")
MATCH (hospital1)-[:CHILD_DOCTOR]->(doctor1)-[referral:REFERRED]-(doctor2)<-[:CHILD_DOCTOR]-(hospital2)
WHERE hospital1 <> hospital2
RETURN DISTINCT hospital1, hospital2, referral.count
这听起来很复杂,但查询非常直接。这是唯一的问题。假设来自A医院的两名医生将病人推荐给B医院的两名医生,我将得到两份记录,其中hospital1 =A医院,hospital2 =医院B。我想将这些结果结合起来,并将referral.count属性相加到一起。有没有办法用塞弗做这件事?
发布于 2013-10-11 21:03:37
不确定我是否正确地理解了你的域名。我的理解是,你在两个任意的医院之间有很多的路径(也就是转诊),并且想对它们进行总结。在本例中使用
START hospital1 = Node:Hospitals("*:*")
MATCH (hospital1)-[:CHILD_DOCTOR]->(doctor1)-[referral:REFERRED]-(doctor2)<-[:CHILD_DOCTOR]-(hospital2)
WHERE hospital1 <> hospital2
RETURN hospital1, hospital2, sum(referral.count)
注:我自己没有试过这个问题。关于进一步的讨论,请在http://console.neo4j.org上创建一个示例数据集。
https://stackoverflow.com/questions/19321325
复制相似问题