SQL在指定的日期时间段内获得大多数命中

时间:2014-05-20 06:21:04

标签: sql sql-server datetime

需要帮助创建一个SQL查询,这个查询会在指定的时间段(例如上周或上个月)为同时登录的用户提供rowcount。我需要得到日期和数量。

SQL表包含以下列: ID(标识符,数字) 用户名(VARCHAR) LoggedInDate(日期时间) LoggedOutDate(日期时间)

想法是计算在给定时间段内同时登录的最大用户数。

任何帮助将不胜感激!

谢谢, 埃罗

2 个答案:

答案 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