【发布时间】:2013-07-16 21:55:19
【问题描述】:
我有一个应用程序使用以下审计表格式写入 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
【问题讨论】:
-
请提供更多示例数据并始终发布您尝试过的内容。当我们使用您的示例数据时,当前的结果是每个用户都会落入 hour = 0 行。我认为用户可能有多个登录和注销?您是否以任何方式确定哪个登录属于哪个注销?