我正在尝试找出距犯罪地点最近的自行车架的距离。我有一个包含 500 万起犯罪和 5,000 个自行车架的数据库表。我现在需要做的是找到离这 500 万起犯罪事件最近的自行车架。我尝试使用 geopy 创建一个 python 脚本,但处理起来太耗时了(至少需要几周时间)。我一直在网上广泛搜索,我发现 SQL Server 2012 有一个地理数据类型,所以我创建了一个列,其中包含来自犯罪和自行车架的纬度和经度点的地理数据类型。
现在我正在尝试做这样的事情:
update Crimes set distanceToNearestBikeRack = crimeGeo.STDistance((select geo from bike_racks))
不幸的是,这会导致子查询返回许多行并抛出:
消息 512,级别 16,状态 1,第 1 行子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。该语句已终止。
如何从众多点中找到最近的点?