查询选择距离包含Lat,Long和speed的表每1 Km距离的记录

时间:2017-04-04 10:51:30

标签: sql sql-server

我有一个SQL Server 2005数据库。我是否可以帮助编写查询,以便在距离包含以下列的驾驶数据表每1公里距离处选择记录:

timestamp                 lat       long        speed MPH
---------------------------------------------------------
2017-03-10 22:10:16.000   33.91985  -84.34022   4
2017-03-10 22:10:20.000   33.91985  -84.34031   5
2017-03-10 22:10:23.000   33.91985  -84.34035   5
2017-03-10 22:10:26.000   33.91985  -84.34048   7
2017-03-10 22:10:27.000   33.91985  -84.34048   7
2017-03-10 22:10:30.000   33.91985  -84.34062   9
2017-03-10 22:10:31.000   33.91985  -84.34062   9
2017-03-10 22:10:34.000   33.91986  -84.3408    8
2017-03-10 22:10:35.000   33.91986  -84.3408    8

如果行进的总距离是10.6公里,那么将从表格中选择11条记录,包括时间戳顺序中的第一条记录和最后一条记录。

1 个答案:

答案 0 :(得分:0)

直接解决方案是使用Geography.STDistance()循环中的WHILE计算每行的距离(与某些锚行比较)

https://docs.microsoft.com/en-us/sql/t-sql/spatial-geography/stdistance-geography-data-type

下一步是使用地理数据类型而不是lat / lon列。