私は2つのテーブルを持っています。1 つは店舗のリスト (緯度/経度付き) です。もう 1 つは、顧客の住所のリスト (緯度/経度付き) です。私が欲しいのは、テーブル内の各店舗の特定の半径内の顧客数を返すクエリです。これにより、任意の店舗から 10,000 メートル以内にいる顧客の総数がわかりますが、店舗ごとに 1 行をカウントして返すようにループする方法がわかりません。
the_geom
基本的に long/latである cartoDB を使用してこのクエリを実行していることに注意してください。
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