我有两张桌子。一个是商店列表(带有纬度/经度)。另一个是客户地址列表(带有纬度/经度)。我想要的是一个查询,它将为我的表中的每个商店返回一定半径内的客户数量。这给了我任何商店 10,000 米内的客户总数,但我不确定如何循环它以为每个商店返回一行并计数。
请注意,我正在使用 cartoDB 进行此查询,其中the_geom
基本上是 long/lat。
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
)
这导致单行:
customer_count
4009
关于如何解决我的问题的建议?我愿意以其他可能更有效(更快)的方式来做这件事。
作为参考,具有商店名称的列(将在一列中)是store_identifier.store_table