2017-07-03 39 views
0

我有一个表 - 在检查时(date_time)包含用户活动的用户和访问资源的用户的名称。我想统计使用该系统的用户,假设用户只有访问超过5分钟时才负责。mysql:根据1小时的间隔计算特定时间内访问资源的用户数

date_time   user_access 
2017-06-24 09:01:59 mike 
2017-06-24 09:04:13 mike 
2017-06-24 09:07:13 mike 
2017-06-24 09:11:14 joe 
2017-06-24 09:18:17 ron 
2017-06-24 09:24:10 rick 
2017-06-24 09:25:24 ron 
2017-06-24 09:39:16 ron 
2017-06-24 09:44:07 ron 
2017-06-24 09:51:44 mary 
2017-06-24 09:54:27 joe 
2017-06-24 09:58:55 joe 

我希望得到的结果是

date_time interval user_count 
2017-06-24 09:00  3 
2017-06-24 10:00  0 

(只计算迈克,罗恩和乔 - 因为他们记录了超过5分钟,这还不包括里克和玛丽,因为他们只记录一旦)。

在此先感谢!

回答

0

如果您需要的用户我的最后一小时

select date(date_time), HOUR(date_time), count(distinct user) 
FROM my_table 
date_time >= date_sub(NOW(), interval 1 hour) 
group by date(date_time), HOUR(date_time) 

计数,这应该是选择的结果的记录更多的是5分钟

select date(date_time), HOUR(date_time), count(distinct user) 
    FROM my_table 
    date_time >= date_sub(NOW(), interval 1 hour) 
    group by date(date_time), HOUR(date_time) 
    and user_access in ( 
     select user_access 
     from my_table 
     where timediff(max(date_time), min(date_time))/60 > 5 
     group by user_access 
    ) 
+0

感谢用户! 这个问题的部分是可以的。我需要一些方法来统计至少记录5分钟的用户。有任何想法吗? – zeb

+0

用5分钟的用户回答udpdate – scaisEdge

相关问题