Chcę uruchomić algorytm najkrótszej ścieżki na wielu parach źródła i celu jednocześnie, uzyskać wynik w postaci tabeli i przetworzyć go.
Jak mam to zrobic? To zapytanie nie działa:
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
(btw, all_to_all nie znaczy dosłownie wszystko dla wszystkich, :) to tylko kilka losowych par)
To również nie działa:
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
źródło
źródło
Odpowiedzi:
Coś jak
źródło
Oto zapytanie, które zwraca wszystkie segmenty dla wszystkich kombinacji źródło-cel:
Niesamowite, niezgodne ze składnią SQL, ale działa!
źródło