所以我在 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)