グラフデータベース、起点空港、目的地空港に2つのノードが作成されています。これは 'delayed_by'という名前のプロパティによって関連付けられます。Neo4jでcypherクエリを使用して複数列の集計関数を行う方法
MATCH (origin:origin_airport {name: row.ORIGIN}),
(destination:dest_airport {name: row.DEST})
CREATE (origin)-[:delayed_by {carr_delay: row.carr_delay}]->(destination)
CREATE (origin)-[:delayed_by {weather_delay: row.weather_delay}]->
(destination)
CREATE (origin)-[:delayed_by {nas_delay: row.nas_delay}]->(destination)
delayed_byは、キャリア遅延、気象遅延、およびナス遅延に起因する値遅延を保持します。ここでは、originとdestinationをgroup_byでグループ化し、Neo4jでcypherクエリを使用して3つの遅延の合計の平均値を計算する必要があります。後述のように表形式、フォーマットの私の入力ファイルの意志で表現:
ORIGIN DEST carr_delay weather_delay nas_delay
ABE ATL 492 56 56
ABE DTW 412 0 47
ABQ ATL 181 0 218
私は以下の形式で結果を期待しています。
ORIGIN DEST Avg_delay
ABE ATL 201.33
ABE DTW 153
ABQ ATL 133
私は、以下のクエリ使用しています:
MATCH (oa:origin_airport)-[d:delayed_by]->(da:dest_airport)
RETURN oa.name AS Origin, da.name AS Destination,
AVG((toFloat(d.carr_delay))+(toFloat(d.weather_delay))+
(toFloat(d.nas_delay))) As avg_delay
ORDER BY avg_delay DESC
LIMIT 10
をしかしAvg_delayにnull値を取得します。
ORIGIN DEST Avg_delay
ABE ATL NULL
ABE DTW NULL
ABQ ATL NULL
モデルを変更しようとしたときにエラーが発生し、 "タイプ" "値"形式を受け入れていません。別の投稿で私のエラーについて説明しました。 http://stackoverflow.com/questions/37899643/how-to-associate-multiple-value-to-a-property-using-cypher-queries-in-neo4j – SRS