2017-07-03 56 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