2017-05-25 11 views
0

私のNeo4jグラフでいくつかの分析を行っていますが、別の問題に悩まされていることを知っています。 私の作業クエリは次のようである:これは期待通りに動作し、私にこのようなリストを与えるbetweenness-centralityとshow percentageを計算する

MATCH p=allShortestPaths((source:Person)-[:KNOWS*]-(target:Person)) 
WHERE id(source) < id(target) and length(p) > 1 
UNWIND nodes(p)[1..-1] AS n 
RETURN n.id AS id, n.firstname AS firstname, n.lastname AS lastname, count(*) as betweenness 
ORDER BY betweenness DESC 

result betweenness

をこれまでのところ、とても良いです。しかし今、私はすべての最短経路に基づく百分率値が表示される追加の列を持っていたいと思います。 I'veは、単に100.0 * SUM(betweenness)/count(p) AS percentを追加しようとしましたが、これはエラーになり変数betweenness定義されていません(行4、列119(オフセット:267))誰かがこれを処理する方法を知っている場合は、私に教えてください

;)

ありがとうございます、乾杯!

答えて

0

使用WITH

  • pWITHを使用して、次のコンテキストの他のプロパティ。
  • betweennessと計算してpercentを返します。

はそれを試してみてください。

MATCH p=allShortestPaths((source:Person)-[:KNOWS*]-(target:Person)) 
WHERE id(source) < id(target) and length(p) > 1 
UNWIND nodes(p)[1..-1] AS n 
WITH p, n.id AS id, n.firstname AS firstname, n.lastname AS lastname, count(*) as betweenness 
RETURN id, firstname, lastname, betweenness, 100.0 * SUM(betweenness)/count(p) AS percent 
ORDER BY betweenness DESC 
+0

をOK ... i'veは、このクエリをテストしたが、その後、私の間隔度-要因は、すべてのノードとの割合ファクタのための「1」「100」 – Andy

+0

なるほどで​​す。.. (ソース:Person) - [:KNOWS *] - (ターゲット:Person) ここで、id(source) 1 UNWINDノード(p )* [1 ..- 1] AS n countP(n)のAS番号、n.firstnameのAS名、n.lastname ASの姓、カウント(*)のbetweenness RETURN id、firstname、lastname 、betweenness、100.0 * SUM(betweenness)/ countP AS percen t ORDER BY betweenness DESC'うまくいけば答えを編集します。 –

関連する問題