我在图数据库,机场和运营商中创建了2个节点。它与名为'delayed_by'的属性相关联。
MATCH (origin:origin_airport {name: row.ORIGIN}),
(carrier:Carrier {name: row.UNIQUE_CARRIER})
CREATE (origin)-[:delayed_by {dep_delay: row.avg_dep_delay}]->(carrier)
")
此处,origin_airport具有原始机场的名称,Carrier具有运营商的名称。 dep_delay保存每个航班延迟的价值。在这里,我需要按载波进行分组,并使用Neo4j中的密码查询计算每个载波的延迟平均值。以表格格式表示,我的输入文件格式如下所示:
ORIGIN UNIQUE_CARRIER avg_dep_delay
ABE DL 15
ABE EV 12
ABQ DL 14
ABQ AS 2
ABQ EV 20
ABQ AS 6
我希望结果采用以下格式。我需要按UNIQUE_CARRIER进行分组,并获得每个航空公司的出发延误的平均值。
UNIQUE_CARRIER avg_dep_delay
DL 14.5
EV 16
AS 4
我不确定对group_by的查询,并取每个组的平均值。使用以下查询时出现语法错误。
MATCH (oa:origin_airport)-[d:delayed_by]->(c:Carrier)
WITH c, AVG(d) As avg
RETURN c.name AS Carrier, avg
ORDER BY avg DESC
LIMIT 10
答案 0 :(得分:1)
您需要将属性指定为AVG
:
MATCH ()-[d:delayed_by]->(c:Carrier)
RETURN c.name AS Carrier,
AVG(toFloat(d.dep_delay)) As avg
ORDER BY avg DESC
LIMIT 10