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

感謝のためにログインしているユーザーのために結果を選択する必要があり、ユーザの数が必要な場合は! 質問の部分はOKです。私は、少なくとも5分間記録されたユーザーを数えるための何らかの方法が必要です。何か案は? – zeb

+0

5分ユーザーのudpdateにお答えください – scaisEdge

関連する問題