我被要求查看一个记录用户登录和注销活动的数据库 - 这是一个用于登录时间的列,然后是另一个用于记录注销的列,两者都是OLE格式.我需要汇总一些有关用户并发性的信息 - 即每天在同一时间登录的用户数量.
有谁知道如何在SQL中执行此操作?我真的不需要知道细节,只需要知道每天的计数.
提前致谢.
我认为这会起作用。
Select C.Day, Max(C.Concurrency) as MostConcurrentUsersByDay
FROM
(
SELECT convert(varchar(10),L1.StartTime,101) as day, count(*) as Concurrency
FROM login_table L1
INNER JOIN login_table L2
ON (L2.StartTime>=L1.StartTime AND L2.StartTime<=L1.EndTime) OR
(L2.EndTime>=L1.StartTime AND L2.EndTime<=L1.EndTime)
WHERE (L1.EndTime is not null) and L2.EndTime Is not null) AND (L1.ID<>L2.ID)
GROUP BY convert(varchar(10),L1.StartTime,101)
) as C
Group BY C.Day
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2157 次 |
| 最近记录: |