路径查询结果,如何根据边的属性使用聚合函数并进行排序。

关于对FIND PATH的查询结果,有个问题想要咨询、请教一下。

现在我知道,如何实现根据边的节点个数进行排序,如何根据边的某个数值属性的和进行排序。

其中,根据边的某个属性值的和进行排序,使用的是reduce语法。

FIND NOLOOP PATH WITH PROP FROM "vertex1" TO "vertex2" OVER route BIDIRECT UPTO 7 STEPS YIELD path as p | YIELD $-.p as p,reduce(acc = 0, n in relationships($-.p) |  acc + n.length) as orderby   | YIELD $-.p as p,$-.orderby as orderby | ORDER BY $-.orderby ASC| YIELD $-.p,$-.orderby| LIMIT 30

我现在想要实现的是,根据边的属性的某个聚合值来进行排序。比如,按照边的某个数值字段的最大值或是最小值来进行排序。

对应reduce,不支持如下的使用方式:

reduce(acc = 0, n in relationships($-.p) |  max(n.length)) as orderby

想要请教一下上述的需求,如何在nql中实现?

仔细看了文档,发现可以使用CASE WHEN THEN语句来实现。

类似

reduce(acc = 0, n in relationships($-.p) |
 CASE WHEN acc > n.length then acc ELSE n.length END) as orderby
3 个赞

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。