Quiero ejecutar el algoritmo de ruta más corta en múltiples pares de origen y destino a la vez y obtener un resultado como tabla y luego procesarlo.
¿Cómo hago esto? Esta consulta no funciona:
SELECT a.source, a.target, paths.*
FROM all_to_all a, shortest_path_astar('...', a.source, a.target, false, false) paths;
ERROR: function expression in FROM cannot refer to other relations of same query level
(por cierto, all_to_all no significa literalmente todo para todos, :) es solo un número de pares aleatorios)
Esto tampoco funciona:
SELECT *
FROM all_to_all a, (
SELECT * FROM shortest_path_astar('...', a.source, a.target, false, false) yyy
) AS t2;
postgis
postgresql
routing
pgrouting
culebrón
fuente
fuente
Respuestas:
Algo como
fuente
Aquí hay una consulta que devuelve todos los segmentos para todas las combinaciones de origen-destino:
Increíble, inconsistente con la sintaxis SQL, ¡pero funciona!
fuente