小编Mik*_*ke 的帖子

最大数量 每天的并发用户会话数

情况

我们有一个PostgreSQL 8.4数据库,其中包含用户会话,其中包含登录日期/时间和每行注销日期/时间.我们的Web应用程序会记录此次并处理用户未明确注销的情况(会话超时).因此,每种情况下都会给出登录日期/时间和注销日期/时间.

目标

我需要每天最大并发会话数的用户统计信息.所以,我可以说以下内容:"在2015年3月16日同时在线用户峰值登录为6."

类似的问题

这里回答了一个类似的问题:每天每小时SQL最大并发会话 但是,我无法使解决方案适应我的情况,我希望有一个结果表,显示最大值.每天并发用户会话数,而不是每小时.表格方案也略有不同,因为我的案例中的一行包含登录和注销日期/时间,而在示例中,每行代表登录或注销.此外,该问题基于MS SQL数据库环境而不是PostgreSQL.

注意事项

  • 不同用户的会话可以重叠
  • 用户可能有重复会话,只应计数一次(按用户名分组)
  • 会话表的表格方案如下所示

表格方案:

user_id     |  login_date  |  login_time  |  logout_date  |  logout_time
------------+--------------+--------------+---------------+-------------
USER32      |  2014-03-03  |    08:23:00  |   2014-03-03  |     14:44:00
USER82      |  2014-03-03  |    08:49:00  |   2014-03-03  |     17:18:00
USER83      |  2014-03-03  |    09:40:00  |   2014-03-03  |     17:31:00
USER36      |  2014-03-03  |    09:50:00  |   2014-03-03  |     16:10:00
USER37      |  2014-03-03  |    11:44:00  |   2014-03-03  |     15:21:00
USER72      |  2014-03-03  |    12:52:00  |   2014-03-03 …
Run Code Online (Sandbox Code Playgroud)

sql postgresql aggregate-functions overlap window-functions

5
推荐指数
1
解决办法
3541
查看次数