我有一个整数数组(节点或目的地),即数组[2,3,4,5,6,8],需要按给定的顺序访问。我想要的是,使用 pgr_dijkstra 获得最短距离。但是 pgr_dijkstra 找到了两点的最短路径,因此我需要使用 pgr_dijkstra 找到每对的距离并添加所有距离以获得总距离。对将像
2,3
3,4
4,5
5,6
6,8。有没有办法定义一个函数来接受这个数组并使用 pgr_dijkstra 找到最短路径。
查询是:
对于第一对(2,3)
SELECT * FROM pgr_dijkstra('SELECT gid as id,source, target, rcost_len AS cost FROM finalroads',2,3, false);
对于第二对(3,4)
SELECT * FROM pgr_dijkstra('SELECT gid as id,source, target, rcost_len AS cost FROM finalroads'***,3,4,*** false)
对于第三对(4,5)
SELECT * FROM pgr_dijkstra('SELECT gid as id,source, target, rcost_len AS cost FROM finalroads'***,4,5,*** false)
;
注意:数组大小不是固定的,可以不同。
有什么方法可以在 postgres sql 中自动执行此操作,可能正在使用循环等?请让我知道该怎么做。谢谢你。