У меня есть массив целых чисел (узлов или пунктов назначения), то есть массив [2,3,4,5,6,8], которые необходимо посетить в данной последовательности.Я хочу получить кратчайшее расстояние с помощью pgr_dijkstra.Но pgr_dijkstra находит кратчайший путь для двух точек, поэтому мне нужно найти расстояние каждой пары, используя pgr_dijkstra и добавив все расстояния, чтобы получить общее расстояние.Пары будут иметь вид
2,3
3,4
4,5
5,6
6,8.Есть ли способ определить функцию, которая принимает этот массив и находит кратчайший путь, используя pgr_dijkstra.
Запрос: для 1-й пары (2,3) SELECT * FROM pgr_dijkstra('SELECT gid as id,source, target, rcost_len AS cost FROM finalroads',2,3, false);
для 2-й пары (3,4) SELECT * FROM pgr_dijkstra('SELECT gid as id,source, target, rcost_len AS cost FROM finalroads'***,3,4,*** false)
для 3-й пары (4,5) SELECT * FROM pgr_dijkstra('SELECT gid as id,source, target, rcost_len AS cost FROM finalroads'***,4,5,*** false)
;
ПРИМЕЧАНИЕ: Размер массива не фиксированный, он может быть другим.
Есть ли способ автоматизировать это в postgres sql, возможно, используя цикл и т. Д.?Пожалуйста, дайте мне знать, как это сделать.Спасибо.