我有一个使用以下审计表格式写入 MySQL 的应用程序。我需要确定一天中任何给定时间登录到系统的当前用户数。
我已经尝试过各种自连接、子查询、timediff,甚至转换为 unixtime 以及一些简单的数学运算,但是我无法提出一个可以接受的解决方案。
非常感谢任何指示或帮助。
审计表
user | action | time
-----|--------|------
1 | login | 2013-07-02 00:37:00
2 | login | 2013-07-02 00:38:00
1 | logout | 2013-07-02 00:39:30
3 | login | 2013-07-02 00:40:00
2 | logout | 2013-07-02 02:30:00
所需格式:一天 24 小时的小时 | 该小时内登录的用户数
示例(请注意,用户 3 尚未注销,因此在第 3 小时的计数中仍显示为活动状态)
hour | usersloggedin
-----|---------------
0 | 3
1 | 2
2 | 2
3 | 1