Tengo dos tablas. Una es una lista de tiendas (con lat/long). La otra es una lista de direcciones de clientes (con lat/long). Lo que quiero es una consulta que devuelva el número de clientes en un radio determinado para cada tienda de mi tabla. Esto me da el número total de clientes en un radio de 10.000 metros de CUALQUIER tienda, pero no estoy seguro de cómo hacer un bucle para devolver una fila para cada tienda con un recuento.
Tenga en cuenta que estoy haciendo estas consultas utilizando cartoDB, donde the_geom
es básicamente largo/plano.
SELECT COUNT(*) as customer_count FROM customer_table
WHERE EXISTS(
SELECT 1 FROM store_table
WHERE ST_Distance_Sphere(store_table.the_geom, customer_table.the_geom) < 10000
)
El resultado es una sola fila:
customer_count
4009
¿Sugerencias sobre cómo hacer que esto funcione contra mi problema? Estoy abierto a hacer esto de otras maneras que podrían ser más eficientes (más rápido).
Como referencia, la columna con los nombres de las tiendas, que estaría en una columna es store_identifier.store_table