小编Sam*_*Axe的帖子

如何按时间采样记录

所以我在 SQL Server 2014 中有一个存储事件的表。事件的生成速度不超过每 10 秒一次,但可能会慢得多(事件之间的几分钟或几小时)。事件之间的时间并不统一。

我想按时间对记录进行抽样。
例如,我想要求一个 10 分钟的采样 - 所以它会抓取记录 1,下一条记录应该是至少 10 分钟后的记录,然后下一条记录至少比第 2 行晚 10 分钟, 等等。

我可以通过迭代方法来实现这一点,循环遍历每条记录,但我想让数据库来完成这项工作。问题是,我不知道如何使用 T-SQL set/window 语句来做到这一点。

谁能帮我吗?

示例数据:

EventID | RecordTime
--------+--------------------
   1    | 2017-04-01 12:00:00
   2    | 2017-04-01 12:00:10
   3    | 2017-04-01 12:00:20
   4    | 2017-04-01 12:00:32
   5    | 2017-04-01 12:05:42
   6    | 2017-04-01 12:09:00
   7    | 2017-04-01 12:24:12
   8    | 2017-04-01 12:36:46
   9    | 2017-04-01 12:36:57
  10    | 2017-04-01 15:00:00
Run Code Online (Sandbox Code Playgroud)

想要的结果:

EventID | RecordTime
--------+--------------------
   1    | 2017-04-01 12:00:00 …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2014

7
推荐指数
1
解决办法
227
查看次数

标签 统计

sql-server ×1

sql-server-2014 ×1

t-sql ×1