1

MATCH が見つけた各パスの重みの合計を取得しようとしています。クエリは次のとおりです。

START n=node(10200) 
MATCH p=(n)-[r*1..5]->(m:Facility) 
WITH REDUCE(weights=0, rel IN r : weights + rel.weight) AS weight_sum 
WHERE ALL(n in nodes(p) WHERE 1=length(filter(m in nodes(p) : m=n))) 
RETURN p AS paths, length(p) AS pc,  
(weight_sum / (length(p) * (length(p) / 2))) AS sp;

実行するたびに...

Unknown identifier `p`

WITH 行 (および weight_sum RETURN 値) を削除すると、クエリは「p」が何であるかを認識し、問題なく実行されます。「p」の値が失われているというクエリに問題はありますか? これらの関係プロパティの合計を取得するためのより良い代替手段はありますか?

4

1 に答える 1

4

WITH を使用して、"p" をクエリの次の部分にパイプするだけです。

START n=node(10200) 
MATCH p=(n)-[r*1..5]->(m:Facility) 
WITH REDUCE(weights=0, rel IN r : weights + rel.weight) AS weight_sum, p
WHERE ALL(n in nodes(p) WHERE 1=length(filter(m in nodes(p) : m=n))) 
RETURN p AS paths, length(p) AS pc,  
(weight_sum / (length(p) * (length(p) / 2))) AS sp;
于 2013-07-31T16:45:08.620 に答える