我希望计算每个节点的传入关系数和传出关系数(这可以提供一些与连接有关的洞察力)。
我可以使用如下查询获取传入(或传出)的数量:
MATCH outg=(a)-->(b)
RETURN a.name, labels(a) AS Stereotype,count(rels(outg)) AS out
ORDER BY out DESC
这很有效。
但是,如果我尝试添加传入关系:
MATCH outg=(a)-->(b), incom=(c)-->(a)
RETURN a.name, labels(a) AS Stereotype,count(rels(outg)) AS out, count(rels(incom)) AS in
ORDER BY out DESC
然后它不会产生我所期望的。在这种情况下,传入和传出计数都是相同的,并且远远高于其自身(因此会进行某种乘法)。
如何处理以及第二种情况下使用的逻辑有什么问题?
答案 0 :(得分:14)
我投票赞成了Nicole和Sam的答案。
但我认为还有更简单的方法:
MATCH (a)
RETURN id(a), labels(a) as stereotype,
size((a)-->()) as out, size((a)<--()) as in
您可以使用您想要的任何属性更改id(a)
。
答案 1 :(得分:2)
我这样做。假设您已加载电影数据集:
MATCH (a)-[r]-(b)
RETURN COALESCE(a.name, a.title), LABELS(a) AS Label,
SUM(CASE WHEN STARTNODE(r) = a THEN 1 ELSE 0 END) AS outgoing,
SUM(CASE WHEN STARTNODE(r) = b THEN 1 ELSE 0 END) AS incoming
ORDER BY outgoing DESC
您可以在此处查看其结果:http://console.neo4j.org/r/6ebvy8
答案 2 :(得分:2)
此查询应该适合您。逻辑很简单。
@font-face
{
font-family:OpenSans-Regular;
src:url(fonts/OpenSans-Regular.ttf);
}
.navbar-default{
background: #fff;
margin-top:2%;
border:0px;
}
.navbar-brand
{
font-family: Open Sans;
font-size: 22px;
}
ul, li, a
{
font-family: Open Sans;
font-weight: 400;
font-size: 22px;
color: #000000;
font-weight: 100;
letter-spacing:-1px;
}
.navbar-toggle
{
border:0px;
}
.container .jumbotron.no-padding
{
background: #fff;
border:0px;
font-family: Open Sans;
font-size: 22px;
text-decoration: none;
padding-left: 0;
padding-right: 0;
color:#000000;
}
.footer {
position: absolute;
width:100%;
bottom:0;
left:0;
text-align: right;
}
.right.carousel-control, .left.carousel-control {
opacity: 0;
filter:alpha(opacity=0); /* IE support */
width:50%;
height:100%;
}
img
{
margin:auto;
}
figcaption
{
display:inline-block;
text-align:left;
margin-left:auto;
margin-right: auto;
}
展示查询的
您的查询无法正常工作的原因之一是因为它使用MATCH (a)
OPTIONAL MATCH (a)-->(b)
WITH a, LENGTH(COLLECT(b)) AS out
OPTIONAL MATCH (c)-->(a)
RETURN a.name, labels(a) AS Stereotype, out, LENGTH(COLLECT(c)) AS in
ORDER BY out DESC;
函数,该函数返回行数 - 而不是集合的长度(或大小)。
答案 3 :(得分:0)
col1 col2 col3
test2 test2 test2
test3 test3 test