背景
我在SQL Server环境中设置了一个表,用于记录我正在跟踪的各种活动的日志。特定的日志项目使用唯一代码来分类正在发生的活动,日期时间字段跟踪活动发生的时间。
问题
我希望使用单个查询或存储过程获得按星期几分组的每小时活动计数的平均值。例如:
Day | Hour | Average Count
-------------------------------
Monday | 8 | 5
Monday | 9 | 5
Monday | 10 | 9
...
Tuesday | 8 | 4
Tuesday | 9 | 3
...etc
目前,我已经设置了一个查询,可以按小时和日期输出计数,但我的问题是进一步按星期几获取平均值。这是我的当前查询:
SELECT CAST([time] AS date) AS ForDate,
DATEPART(hour, [time]) AS OnHour,
COUNT(*) AS Totals
FROM [log] WHERE [code] = 'tib_imp.8'
GROUP BY CAST(time AS date),
DATEPART(hour,[time])
ORDER BY ForDate Asc, OnHour Asc
有什么建议可以帮助我完成这个任务吗?
先谢谢了!
select field, avg(countField) from ( select field, count(*) as countField group by field) result group by field
- Mosty Mostacho