无论日期如何,如何按时间获得点击次数?

时间:2011-05-11 18:35:53

标签: sql sql-server sql-server-2008

我正在开发一个sql视图,它应该按一天中的小时获得平均点击次数,而不管流量监控的日期/日期(12:00:00.000 - 12:59:59.999)。有什么想法吗?

修改

现在我有总数,我如何获得平均值? SELECT AVG(“功能低于”)不工作

SELECT     COUNT(*) AS total, DATEPART(hh, LogDate) AS HourOfDay
FROM         dbo.Log
GROUP BY DATEPART(hh, LogDate)

2 个答案:

答案 0 :(得分:3)

转换为DATEPART(......,.....

示例SELECT DATEPART(hh,GETDATE())

由于您使用的是SQL Server 2008,因此可以使用时间数据类型,只需转换为时间

例如

SELECT CONVERT(TIME,GETDATE())

然后你也可以过滤

由于我不确定您的输出应该是什么样的,因此我向您展示了两者,但如果您只需按小时分组,那么只需执行datepart(hh....

答案 1 :(得分:1)

下面的查询对您来说可能已经足够了。它将计数除以LogDate列中今天日期和最小日期之间的差异。

SELECT DATEPART(hh,LogDate) as Hour
,CAST(COUNT(*)as decimal)/DATEDIFF(d,(SELECT MIN(LogDate) from log)
,CURRENT_TIMESTAMP) as AverageHits
, COUNT(*) as Count
FROM log
GROUP BY DATEPART(hh,LogDate)
ORDER by DATEPART(hh,LogDate) asc