【发布时间】:2014-12-30 10:52:38
【问题描述】:
我在医疗保健呼叫中心工作。我可以访问我们核心系统的数据库,并且我想使用其中的数据来确定在可能超过 24 小时(例如 24/12/2014 - 26/)的给定时间段内每小时登录数据的员工数量12/2014)。
有一个userlog表,记录用户登录和注销的时间。
userlog 表示例
UserRef Date LogType SessionID
--------------------------------------- ----------------------- ------ -----------------------
96AD647C-D061-43F5-9F8D-FA6C74817E07 2002-10-17 14:11:25.763 LOGON 8D451569-0260-46BB-9B9E-F49B3E778161
96AD647C-D061-43F5-9F8D-FA6C74817E07 2002-10-17 18:11:32.547 LOGOFF 8D451569-0260-46BB-9B9E-F49B3E778161
60738820-5F72-4E20-A070-57E07C83B6DE 2002-10-17 14:53:31.153 LOGON C773894C-8B2D-4054-A550-3F04B4C5669F
60738820-5F72-4E20-A070-57E07C83B6DE 2002-10-17 22:55:25.607 LOGOFF C773894C-8B2D-4054-A550-3F04B4C5669F
90A55FDD-967E-4D99-96DF-96840CDB2CDF 2002-10-17 15:26:40.123 LOGON 1CE5F5A5-4E20-4D4A-BB67-EB0CB33976D7
96AD647C-D061-43F5-9F8D-FA6C74817E07 2002-10-17 15:51:28.590 LOGON 7EFDEE1C-15CF-4DE1-B59F-7AFC49B4BE73
90A55FDD-967E-4D99-96DF-96840CDB2CDF 2002-10-17 15:58:05.217 LOGOFF 1CE5F5A5-4E20-4D4A-BB67-EB0CB33976D7
96AD647C-D061-43F5-9F8D-FA6C74817E07 2002-10-17 15:58:31.013 LOGOFF 7EFDEE1C-15CF-4DE1-B59F-7AFC49B4BE73
90A55FDD-967E-4D99-96DF-96840CDB2CDF 2002-10-17 15:58:32.733 LOGON 03F56AB8-FED5-4CC7-8445-26BF55F58E60
90A55FDD-967E-4D99-96DF-96840CDB2CDF 2002-10-17 16:13:02.827 LOGOFF 03F56AB8-FED5-4CC7-8445-26BF55F58E60
期望的结果 (这不是为了反映上述示例数据):
Date Hour Number of users logged in
---- ---- -------------------------
01/12/2014 0 0
01/12/2014 1 0
01/12/2014 2 0
01/12/2014 3 0
01/12/2014 4 0
01/12/2014 5 1
01/12/2014 6 1
01/12/2014 7 1
01/12/2014 8 3
01/12/2014 9 7
01/12/2014 10 7
...
01/12/2014 23 0
明确一点:当没有用户登录时,我试图让小时数仍然显示为 0。
我想我正在寻找的是一天中每个小时的最大并发会话数,但我对 SQL 的技术或技能并不过分(不过会一点一点地变得更好!)所以我希望术语不会不要混淆!
我对此进行了谷歌搜索并发现了一些类似的场景,但对于 Oracle 和 MySQL,或者日志表以不同方式记录登录数据。我确信我会成功地将其他数据库查询代码“翻译”为 MS SQL,但我还没有做到这一点!
我正在使用:Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)。
提前感谢您的帮助。
【问题讨论】:
-
你会在查询中传递日期/日期范围以指定我想要这个特定日期/日期范围的结果吗?另外,分享你的尝试。
-
@DeepakPawar 是的,我会的。除了将其放入包含会话 ID、登录日期、注销日期的列标题的表中外,我没有得到任何尝试。我不知道从那里去哪里。对不起:(
标签: sql sql-server-2005