需要帮助创建一个SQL查询,这个查询会在指定的时间段(例如上周或上个月)为同时登录的用户提供rowcount。我需要得到日期和数量。
SQL表包含以下列: ID(标识符,数字) 用户名(VARCHAR) LoggedInDate(日期时间) LoggedOutDate(日期时间)
想法是计算在给定时间段内同时登录的最大用户数。
任何帮助将不胜感激!
谢谢, 埃罗
答案 0 :(得分:0)
select count(1) as counter,
DATE_FORMAT(LoggedInDate, '%Y-%m-%d') as loggedInDate
from tabel
group by DATE_FORMAT(LoggedInDate, '%Y-%m-%d')
类似于我所说的 然后,您获得x天数量的用户登录,如果需要,您可以将日期格式增加到包含小时数
答案 1 :(得分:0)
当有人登录时必须发生最大值,因此我们会检查每次登录后登录的数量
SELECT MAX(LoggedInCount)
FROM table
CROSS APPLY (
SELECT COUNT(1) AS LoggedInCount
FROM table AS InnerTable
WHERE InnerTable.LoggedInDate <= table.LoggedInDate
AND InnerTable.LoggedOutDate >= table.LoggedInDate
) AS CA1
WHERE table.LoggedInDate IN YourPeriod