{{1}}
以上查询导致以下错误:
在此上下文中使用聚合函数max(...)无效(第1行, 第61栏(抵消:60))
答案 0 :(得分:2)
此查询应返回具有最大计数的m
个节点的集合。它只需要执行一次MATCH
操作,并且应该具有相对的性能。
MATCH (n)-[:LIKES]->(m)
WITH m, COUNT(n) AS cnt
WITH COLLECT({m: m, cnt: cnt}) AS data, MAX(cnt) AS maxcnt
RETURN REDUCE(ms = [], d IN data | CASE WHEN d.cnt = maxcnt THEN ms + d.m ELSE ms END) AS ms;
答案 1 :(得分:1)
如果你只是想找到一个导致它的LIKES关系最多的节点,那么你可以添加一个ORDER BY和LIMIT:
MATCH (n)-[:LIKES]->(m)
WITH m, count(n) AS cnt
ORDER BY cnt DESC
LIMIT 1
RETURN m
但是,该查询的局限性在于,如果多个节点具有最大入站关系数,则不会返回那些绑定节点。要实现这一结果,您可以尝试这样的事情:
MATCH (n)-[:LIKES]->(m)
WITH m, count(n) AS cnt
WITH MAX(cnt) AS maxcnt
MATCH (o)
WHERE size((o)<-[:LIKES]-()) = maxcnt
RETURN o