如何解决Neo4j中的变量未定义错误

时间:2020-03-20 02:13:54

标签: neo4j cypher undefined

Match (a)-[:RECEIVES]->(b) 
WITH avg(toFloat(b.rating)) AS avg 
WHERE avg > 2.5 
RETURN b.pID, avg

这段代码给我下面的错误。

Variable `b` not defined 
"RETURN b.pID, avg"

1 个答案:

答案 0 :(得分:1)

您的查询(至少)有2个问题:

  1. WITH子句未指定b,因此b不受约束。
  2. 由于您要对所有b个节点进行平均,因此更有意义的是返回它们的pID值的 collection 和平均值。

例如:

MATCH ()-[:RECEIVES]->(b) 
WITH AVG(TOFLOAT(b.rating)) AS avg, COLLECT(b.pID) as pIDs
WHERE avg > 2.5 
RETURN pIDs, avg

注意:如果平均值<= 2.5,则此查询将不返回任何内容。