Я пишу запрос, который объединяет многие местоположения со списком транзитных станций, чтобы определить минимальное расстояние до остановки общественного транспорта.С запросом довольно просто:
select
location.id,
MIN(
ST_distance_sphere(
ST_MakePoint(
transit.latitude,
transit.longitude
),
ST_MakePoint(
cast(locations.latitude as double precision),
cast(locations.longitude as double precision)
)
)
) as meters_from_nearest_stop,
from public.transit_stops transit
cross join public.locations locations
group by 1
Это, однако, не может наивно дать мне местоположение с минимальным расстоянием, просто минимальным расстоянием.Как я могу изменить это, чтобы вернуть мне другие атрибуты из строки с минимальным расстоянием?
Результирующее перекрестное соединение довольно большое, поэтому производительность важна.