如何找到多个节点/关系属性的最小值/最大值?
我准备了以下图形:activeTab documentation。
基本上是(U:User)-[i:invests]->(P:Project)。
1)我具有以下属性:amount:1000
2)U具有以下属性:availableAmount:500
我需要较小的值1)i的属性和2)U的属性
答案 0 :(得分:1)
为此,您需要一个缩放器函数,从Cypher获得的min()
和max()
函数是跨行工作的聚合函数,这在这里不是您所需要的。
如果您安装了APOC Procedures,则可以使用apoc.coll.min()
和apoc.coll.max()
来遍历列表的各个元素:
MATCH (U:User)-[i:invests]->(P:Project)
RETURN U, apoc.coll.min([i.amount, P.availableAmount]) as minValue
如果您没有APOC或不允许使用它,则可以使用CASE结构查找最小值:
MATCH (U:User)-[i:invests]->(P:Project)
RETURN U, CASE WHEN i.amount < P.availableAmount THEN i.amount ELSE P.availableAmount END as minValue