犯罪現場に最も近い自転車ラックまでの距離を見つけようとしています。500 万の犯罪と 5,000 の自転車ラックを含むデータベース テーブルがあります。私が今しなければならないことは、500 万件の犯罪のそれぞれに最も近い自転車ラックを見つけることです。geopy を使用して python スクリプトを作成しようとしましたが、処理に時間がかかりすぎました (少なくとも数週間はかかるでしょう)。私はオンラインで広範囲に検索してきました.SQL Server 2012には地理データ型があることがわかったので、犯罪と自転車ラックの緯度と経度のポイントからその地理データ型を含む列を作成しました.
今、私はこのようなことをしようとしています:
update Crimes set distanceToNearestBikeRack = crimeGeo.STDistance((select geo from bike_racks))
残念ながら、これによりサブクエリが多くの行を返し、次のスローが発生します。
メッセージ 512、レベル 16、状態 1、行 1 サブクエリが複数の値を返しました。サブクエリが =、!=、<、<=、>、>= の後にある場合、またはサブクエリが式として使用されている場合、これは許可されません。ステートメントは終了されました。
多数のポイントから最も近いポイントを見つけるにはどうすればよいですか?