我的图表中有两种类型的节点。一种是Testplan,另一种是Tag。测试计划被标记为标签。我希望大多数常见的标签对与具有特定名称的标签共享相同的Testplans。我已经能够实现最常见的标签与一个标签共享相同的Testplan,但在尝试为标签对进行操作时会感到困惑。返回单个标签列表的密码在
下面共享MATCH (kw1:Tag)<-[e:TAGGED]-(tp1:Testplan)-[e2:TAGGED]->(kw2:Tag)
WHERE kw1.name = "result"
RETURN kw1,kw2,count(tp1)
ORDER BY count(tp1) DESC
此cypher返回如下内容
Kw1 kw2 count(tp1)
“result” “error” 104
“result” “prerequisites” 89
“result” “alpha” 63
我希望结果是
Kw1 kw2 count(tp1)
“result” “error”,”prerequisites” 70
“result” “error”,”alpha” 63
答案 0 :(得分:3)
MATCH (kw1:Tag)<-[e:TAGGED]-(tp1:Testplan)-[e2:TAGGED]->(kw2:Tag),
(tp1)-[:TAGGED]->(kw3:Tag)
WHERE kw1.name = "result"
AND ID(kw2)<ID(kw3)
RETURN kw2, kw3,count(tp1)
ORDER BY count(tp1) DESC
答案 1 :(得分:0)
我认为您可以使用collect()
MATCH (kw1:Tag)<-[e:TAGGED]-(tp1:Testplan)-[e2:TAGGED]->(kw2:Tag)
WHERE kw1.name = "result"
WITH tp1,collect(kw2) as tags,count(*) as count
RETURN tags,sum(count)
ORDER BY count DESC