Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j-返回最大值上的节点_Neo4j_Cypher - Fatal编程技术网

Neo4j-返回最大值上的节点

Neo4j-返回最大值上的节点,neo4j,cypher,Neo4j,Cypher,我正在使用下面的命令通过csv将数据加载到neo4j load csv with headers from "file:///path_to.csv" as file merge (d:DIAGNOSIS {name:file.DIAGNOSIS_SYNONYM}) merge (dn:DRUG_NAME {name:file.DRUG_NAME}) merge (tc:TOTAL_COST {name:toFloat(file.TOTAL_COST)}) merge (cnt:COUNT {n

我正在使用下面的命令通过csv将数据加载到neo4j

load csv with headers from "file:///path_to.csv" as file
merge (d:DIAGNOSIS {name:file.DIAGNOSIS_SYNONYM})
merge (dn:DRUG_NAME {name:file.DRUG_NAME})
merge (tc:TOTAL_COST {name:toFloat(file.TOTAL_COST)})
merge (cnt:COUNT {name:toInt(file.COUNT)})
merge (ac:AVERAGE_COST {name:toFloat(file.AVERAGE_COST)})
create (dn)-[:for]->(d)
create (d)-[:costs]->(tc)
create (tc)-[:count]->(cnt)
create (cnt)-[:avg_costs]->(ac)
现在我想找到总成本最高/最低的诊断

我试过了

MATCH ((dn)-[:for]-(d)-[:costs]-(tc)-[:count]-(cnt)-[:avg_costs]->(ac))
WITH d,tc, max(tc.name) as maximum
where tc.name= maximum
return d

但是,这将返回所有诊断节点。有人能告诉我我做错了什么。

既然你只使用了
d::DIAGNOSIS
tc:TOTAL_COST
为什么你要
匹配整个路径?我相信您可以
只匹配
(d:诊断)-[:成本]-(tc:总成本)
而忽略其余部分

还记得尽可能使用标签。标签将提高查询的性能

我相信使用
orderby
LIMIT
应该可以。尝试:

MATCH ((d:DIAGNOSIS)-[:costs]-(tc:TOTAL_COST))
RETURN d
ORDER BY tc.name DESC
LIMIT 1
或者,您可以首先匹配最大的
tc.name
,然后在第二次匹配的
中使用它

MATCH (tc:TOTAL_COST)
WITH  max(tc.name) AS maximum
MATCH ((d:DIAGNOSIS)-[:costs]-(tc:TOTAL_COST))
WHERE tc.name = maximum
RETURN d
可能重复的