我有一个表“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
答案 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])