我有一个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条记录,包括时间戳顺序中的第一条记录和最后一条记录。
答案 0 :(得分:0)
直接解决方案是使用Geography.STDistance()
循环中的WHILE
计算每行的距离(与某些锚行比较)
https://docs.microsoft.com/en-us/sql/t-sql/spatial-geography/stdistance-geography-data-type
下一步是使用地理数据类型而不是lat / lon列。