【发布时间】:2014-10-05 03:32:33
【问题描述】:
我在表中有以下 DateTime 值,仅当此值之间的间隔 > 5 秒时才需要过滤集合。这应该是一个特定的日期,从第一行开始。
知道如何仅在使用 SQL Server 2012 的 SQL 中执行此操作吗?
1 2014-04-02 05:33:56.60
2 2014-04-02 05:40:01.55
3 2014-04-02 05:52:45.81
4 2014-04-02 05:52:47.50
5 2014-04-02 06:35:48.84
6 2014-04-02 06:50:49.72
7 2014-04-02 07:01:02.71
8 2014-04-02 07:01:04.35
9 2014-04-02 07:01:09.29
10 2014-04-02 07:44:05.71
11 2014-04-02 08:37:47.06
【问题讨论】:
-
你的sql版本是多少?
-
我使用的是 MS SQL 2012
-
如果第一列中的数字密集(没有间隙),那么一个简单的自连接(伪代码)
on a.id=b.id+1 and diff(a.timestamp,b.timestamp) > 5 sec。否则,您需要使用时间戳的相关子查询。 -
我认为您也可以使用
LAG或LEAD函数。 @JimGarrison 性能方面,为此目的使用分析函数是个好主意吗? -
不知道 MSSQL。我使用 Postgres。
标签: sql-server database tsql sql-server-2012