sql題解--求出平臺同時線上最多的人數
阿新 • • 發佈:2022-12-02
題目-求出平臺同時線上最多的人數
題目需求
根據使用者登入明細表(user_login_detail),求出平臺同時線上最多的人數。
結果如下:
cn |
---|
7 |
需要用到的表:
使用者登入明細表:user_login_detail
user_id(使用者id) | ip_address(ip地址) | login_ts(登入時間) | logout_ts(登出時間) |
---|---|---|---|
101 | 180.149.130.161 | 2021-09-21 08:00:00 | 2021-09-27 08:30:00 |
102 | 120.245.11.2 | 2021-09-22 09:00:00 | 2021-09-27 09:30:00 |
103 | 27.184.97.3 | 2021-09-23 10:00:00 | 2021-09-27 10:30:00 |
SELECT max(cn) as cn FROM ( SELECT *, sum(if (flag='login',1,-1)) over(ORDER BY actiontime) as cn FROM ( SELECT user_id,login_ts as actiontime ,'login' as flag FROM user_login_detail UNION SELECT user_id,logout_ts as actiontime,'logout' as flag FROM user_login_detail )t1 )t2
如:
101,2021-06-10 12:12:12,login,1 102,2021-06-10 12:12:12,login,2 104,2021-06-10 12:12:12,login,3 103,2021-06-10 12:14:12,login,4 105,2021-06-10 13:12:12,login,5 104,2021-06-10 15:12:12,logout,4 101,2021-06-10 17:12:12,logout,3 102,2021-06-10 17:12:12,logout,2 103,2021-06-10 17:12:12,logout,1 105,2021-06-10 17:12:12,logout,0 101,2021-06-10 19:12:12,login,1 101,2021-06-10 21:12:12,logout,0