あなたの「編集」に関して、「提供しないでください...」を含む質問を目にすることはあまりありません。きっと少しずつ役に立ちますか?特に、あなたが実際に何をしているかを見せていないので STContains
について知っている または STIntersects
(または Filter()
さらに言えば)...
とにかく、私は郵便番号と店舗の場所のデータベースを手元に持っていたので、テーブル/列の名前をあなたの名前に合わせて変更しました (6,535 の CrimeLocatoins と 3,285 の GeoShapes があります)。もうお分かりだと思いますが、他の誰かがこれを役に立つと思うかもしれません...
次のクエリは、CrimeLocations の数を返します 各 GeoShapes.ShapeFile で
SELECT G.Name, COUNT(CL.Id)FROM GeoShapes GINNER JOIN CrimeLocations CL ON G.ShapeFile.STIntersects(CL.LatLong) =1GROUP BY G.NameORDER BY 2 DESC
プレ>年かかります (20 分程度) 地理空間インデックスを設定しておらず、ShapeFile のポイント数が多いため、正常に実行されます。あなたが提案するように結果を制限したい場合:
SELECT G.Name, COUNT(CL.Id)FROM GeoShapes GINNER JOIN CrimeLocations CL ON G.ShapeFile.STIntersects(CL.LatLong) =1GROUP BY G.NameHAVING COUNT(CL.Id) =500コード> プレ>
もちろん、500 という数字をハードコーディングしたくないので、
COUNT(*) FROM CrimeLocations
を追加できます。 そこのサブクエリ、または別のクエリからの合計を含む変数。それは十分に複雑ですか?