SQL SERVER 2005将一年的平均使用率分为30天

时间:2013-12-11 19:50:26

标签: sql sql-server-2005

我有一个表“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 

1 个答案:

答案 0 :(得分:0)

您的查询不正确如果您有两年的月份(假设是年中)您不能订购!!!!

你必须CAST为MM-YYYY或使用我的建议+' - '+

试试这个

select Month(UsageLog.[Date])   + '-' + Year(UsageLog.[Date]) as MonthYear ,
  Count(UsageLog.Application ) 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
 order by  Month(UsageLog.[Date])   + '-' + Year(UsageLog.[Date]) DESC

您可以按月使用它(UsageLog。[Date])+' - '+ Year(UsageLog。[Date])