Tengo dos tablas, una con "casas" y otra con "puntos". Sé cómo obtener la distancia individualmente, así:
gisdb=# SELECT round(ST_Distance_Sphere(
(SELECT coordinates FROM houses WHERE id = 1),
(SELECT coordinates FROM points WHERE id = 2)))
as Distance
;
distance
----------
174
(1 row)
El caso es que si en la tabla "puntos" tengo unos 50 puntos, ¿cómo puedo hacer que devuelva la distancia del más cercano?
He visto la función ST_ClosestPoint
pero no sé cómo aplicarlo a mi consulta.
0 votos
Por favor, dedícale más tiempo a investigar cómo hacer un "self join". Tenga en cuenta que sólo quiere hacer coincidir las características con una clave única superior.
0 votos
Había pensado en eso; recoger todas las distancias y luego devolver la más baja con
min()
pero no fue una forma muy limpia. Por eso pregunté aquí.0 votos
@Newwt puede actualizar la pregunta con
SELECT version() UNION ALL SELECT postgis_version();