日期:2014-05-16  浏览次数:20766 次

统计出在N分钟(10、20、30分钟等变量)内,访问次数超过5次的记录
有一个日志表tab_1,字段:user_id和visit_datetime
表示登录人和登录时间。
记录:
1 2012-10-17 15:41:00
1 2012-10-17 15:42:00
2 2012-10-17 15:43:00
3 2012-10-17 15:44:00
4 2012-10-17 15:45:00
5 2012-10-17 15:46:00
6 2012-10-17 15:47:00
7 2012-10-17 15:48:00
8 2012-10-17 15:49:00

1 2012-10-17 15:50:00
2 2012-10-17 15:51:00
。。。

现在要统计出一些数据,每个登录人,在某一天内,如果在10(或20分钟、30分钟,是变量)分钟内,
访问次数超过5次的记录,统计出来。如结果:
1 2012-10-17 15:41:00
1 2012-10-17 15:42:00
1 2012-10-17 15:43:00
1 2012-10-17 15:44:00
1 2012-10-17 15:45:00
1 2012-10-17 15:50:00

2 2012-10-17 15:41:00
2 2012-10-17 15:42:00
。。。。。


我的思路是分为先对一天的时间分段:如:
2012-10-17 00:00:00 -2012-10-17 00:10:00
2012-10-17 00:10:00 -2012-10-17 00:20:00
2012-10-17 00:20:00 -2012-10-17 00:30:00
。。。
2012-10-17 23:50:00 -2012-10-17 23:59:99

然后用分组group的方法计算出来。

怎么写一个sql语句,求出结果。


------解决方案--------------------
SQL code
select *
from 记录 a
where 5<=(select count(*) from 记录 where 登录人=a.登录人 and 登录时间 between a.登录时间 and a.登录时间+interval 5 minute);