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


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"

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

  1. WITH子句未指定b,因此b变为未绑定
  2. 由于您正在对所有b节点进行平均,因此使用平均值返回其pID值的集合实际上更有意义

例如:

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

注意:如果平均值为<=,则此查询将不返回任何结果2.5.

最新更新