我有一张表格,可以随着时间的推移跟踪位置。此表包含很多行,格式无法更改。每个位置都插入一个 id、实际位置和时间戳(日期时间)。位置本身被插入到连接字符串中,可以使用自定义函数将其转换为 x/y 坐标。
我想创建一个程序,并列出所有已知位置及其适当的时间戳。到目前为止没有问题。但也想创建一个指示位置和时间差异的输出列。
澄清。我有的:
Id | Timestamp | Foreign_Id | POS
----------------------------------------------------------
1 | 2011-02-20 00:00:00 | 2 | PositionAsString
----------------------------------------------------------
2 | 2011-02-20 00:00:05 | 2 | PositionAsString
----------------------------------------------------------
3 | 2011-02-20 00:00:15 | 2 | PositionAsString
----------------------------------------------------------
4 | 2011-02-20 00:00:37 | 2 | PositionAsString
位置坐标可通过函数获得,这些函数getX
返回getY
X 和 Y 的浮点值。位置的差异将使用勾股定理计算,因为它只是 2D。
我想要的是
Id | Timestamp | Foreign_Id | POS | DiffPos | Speed
---------------------------------------------------------------------------
1 | 2011-02-20 00:00:00 | 2 | PositionAsString | 0 | 0
---------------------------------------------------------------------------
2 | 2011-02-20 00:00:05 | 2 | PositionAsString | 20 | 4
---------------------------------------------------------------------------
3 | 2011-02-20 00:00:10 | 2 | PositionAsString | 10 | 2
---------------------------------------------------------------------------
4 | 2011-02-20 00:00:20 | 2 | PositionAsString | 10 | 1
所以现在我的问题是如何计算与上一行的差异。重要的是,在执行任何低效计算之前,将结果集缩小到外键,因为表有很多行。