我有一台自行车电脑,每秒钟记录我走了多远
数据的简化版本如下:
declare @DistanceTable Table
(
ID int,
Time DateTime2,
DistanceMeters float
)
insert into @DistanceTable values
(1, '2018-08-10 07:17:48', 3.8099999427795410),
(2, '2018-08-10 07:17:49', 7.7600002288818359),
(3, '2018-08-10 07:17:50', 12.3299999237060547),
(4, '2018-08-10 07:17:51', 18.0000000000000000),
(5, '2018-08-10 07:17:52', 24.8999996185302734),
(6, '2018-08-10 07:17:53', 32.1599998474121094),
(7, '2018-08-10 07:17:54', 40.7200012207031250),
(8, '2018-08-10 07:17:55', 49.7599983215332031),
(9, '2018-08-10 07:17:57', 68.6100006103515625),
(10, '2018-08-10 07:17:58', 79.3199996948242188),
(11, '2018-08-10 07:18:00', 100.1900024414062500),
(12, '2018-08-10 07:18:02', 122.7099990844726563),
(13, '2018-08-10 07:18:03', 134.1900024414062500),
(14, '2018-08-10 07:18:04', 145.9199981689453125),
(15, '2018-08-10 07:18:05', 158.4700012207031250),
(16, '2018-08-10 07:24:04', 5003.4101562500000000), --5000 meters driven
(17, '2018-08-10 07:24:05', 5018.7797851562500000),
(18, '2018-08-10 07:24:06', 5034.0498046875000000),
(19, '2018-08-10 07:24:07', 5048.8901367187500000),
(20, '2018-08-10 07:24:08', 5063.8798828125000000),
(21, '2018-08-10 07:24:09', 5079.0200195312500000),
(22, '2018-08-10 07:24:13', 5141.0600585937500000),
(23, '2018-08-10 07:24:17', 5201.7500000000000000),
(24, '2018-08-10 07:24:21', 5261.8798828125000000),
(25, '2018-08-10 07:24:23', 5290.2900390625000000),
(26, '2018-08-10 07:24:28', 5363.7099609375000000),
(27, '2018-08-10 07:24:33', 5435.9101562500000000),
(28, '2018-08-10 07:24:34', 5450.8901367187500000),
(29, '2018-08-10 07:24:35', 5465.4199218750000000),
(30, '2018-08-10 07:24:36', 5480.5400390625000000)
我正在尝试计算整个轨道的最快5000 m时间
所以我想计算驱动5000 m后每条记录的最后5000米的时间
答案 0 :(得分:2)
您遇到的一个问题是,距离永远不会精确到5,000米。一种近似方法是获取5,000米以外的第一个值,并将其用于计算:
cursor
您的数据点非常接近,因此实际总距离将为5009米,5002米,依此类推。那可能已经足够好了,所以我就在这里停止。
实际上可以插值第一和最后一条腿以获得准确的结果,但是要进行很小的改进会花费很多精力。