【发布时间】:2013-12-11 19:50:25
【问题描述】:
我有一个表“UserId”、“Date”、“Application”,它记录了用户使用应用程序的日期和时间,我设法按月将其拆分为过去一年的平均使用量。但是,我被要求按 30 天的计费周期而不是几个月来拆分。谁能帮助我如何有效地将数据拆分为一个表格,该表格显示每个应用程序和每 30 天的平均用户数。
这是按月拆分应用程序的查询
select Month(UsageLog.[Date]) as [Month], Year(UsageLog.[Date]) as [Year],
(Count(UsageLog.UserName)/COUNT(Distinct UsageLog.[Date])) as NumUsers,
UsageLog.Application
From Licensing.dbo.Table_UsageLog
where UsageLog.[Date] > DATEADD(YEAR,-1,GetDate())
Group By Month(UsageLog.[Date]), Year(UsageLog.[Date]), UsageLog.Application
【问题讨论】:
-
您的 30 天计费周期是如何定义的 - 每个用户的注册时间是否不同?如果用户 A 于 2013 年 1 月 1 日注册,用户 B 于 2013 年 1 月 15 日注册,他们的计费周期会分别延长至 2013 年 2 月 1 日和 2013 年 2 月 15 日吗?
-
那么上面的查询有什么问题?
-
好问题,摘要是从一年前的当前日期开始的 30 天。
标签: sql sql-server-2005