我需要编写一个查询以丢弃不超过预定余量(例如 2 秒)的访问日志。也就是说,如果每条记录是由用户在特定日期/时间制作的,我不想让那些其日期/时间不超过与上一条记录的日期/时间相比范围的人。我认为一个例子更清楚。
例子:
LogIndex, UserID, Date / Time
1. 01551, 20.02.2013 17:41:45.000
2. 01551, 20.02.2013 17:41:45.900 *
3. 01551, 20.02.2013 17:41:46.150 *
4. 01551, 20.02.2013 20:41:47.000
5. 01552, 02/20/2013 17:42:45.000
6. 01552, 20.02.2013 17:42:46.000 *
7. 01552, 02/20/2013 19:45:45.000 *
被丢弃的记录,因为它的日期/时间不超过上一条记录的 2 秒余量。在第一种情况下,应该丢弃两条记录,因为它们都没有超过这个边距。
这是创建临时表并添加先前记录以进行测试的代码:
CREATE TABLE # TEMP (LogIndex int, UserID nvarchar (10), LogTime datetime)
insert into # temp select 1, '01551 ', '20 / 02/2013 17:41:45.000'
insert into # temp select 2, '01551 ', '20 / 02/2013 17:41:45.900'
insert into # temp select 3, '01551 ', '20 / 02/2013 17:41:46.150'
insert into # temp select 4, '01551 ', '20 / 02/2013 20:41:47.000'
insert into # temp select 5, '01552 ', '20 / 02/2013 17:42:45.000'
insert into # temp select 6, '01552 ', '20 / 02/2013 17:42:46.000'
insert into # temp select 7, '01552 ', '20 / 02/2013 19:45:45.000'
select * from # temp
DROP TABLE # temp
提前致谢!