2

我有一张表格,可以随着时间的推移跟踪位置。此表包含很多行,格式无法更改。每个位置都插入一个 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返回getYX 和 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    

所以现在我的问题是如何计算与上一行的差异。重要的是,在执行任何低效计算之前,将结果集缩小到外键,因为表有很多行。

4

1 回答 1

-1

感谢您的建议,但是由于这既复杂又低效,我现在正在使用另一种解决方案。如上所述,我无法更改源表的格式。但是可以修改正在写入此跟踪表的触发器,以便在插入新行之前计算差异。

这当然不适用于现有条目,但这是可以接受的。

于 2012-09-08T09:53:36.633 回答