3

假设我有下表:

id | elementID | date | time
----------------------------

我搜索的内容如下:

  1. 按日期、时间选择给定 elementID 顺序的所有“时间”值(这很容易)
  2. 计算时间值之间的时间差

第二点导致问题,因为我不知道从哪里开始。在 C++ 中,我会在所有“时间”上循环迭代并简单计算

dt = time_i - time_{i-1}
e.g.
00:00:57 - 00:00:30 = 27s = dt
00:01:05 - 00:00:57 =  8s = dt
00:01:09 - 00:01:05 =  4s = dt
etc.

我很感激任何帮助

4

1 回答 1

10

你想要lag窗口功能。

SELECT time_col - lag(time_col) OVER (ORDER BY whatever)
FROM the_table
ORDER BY whatever;

请参阅窗口函数教程和窗口函数的用户手册页。窗口函数使您可以在当前结果集中获取结果集中的lag“上一个”行并在表达式中使用它。

于 2013-05-22T12:49:37.620 回答