如何根据时间获取点击次数?

问题描述:

我正在研究一个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) 
+0

您能否提供带有示例数据的模式? – garnertb 2011-05-11 19:00:13

+0

为什么你为''''和'sql-server [-2008]'添加了这个标签? – 2011-05-11 19:04:21

+0

@Martin - 道歉... – MrM 2011-05-11 19:16:36

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

SELECT DATEPART(hh,GETDATE())

既然你是SQL Server 2008上,您可以使用时间数据类型,只是转换时间

例如

SELECT CONVERT(TIME,GETDATE()) 

然后你可以过滤也

因为我不知道你的输出应该是什么样子,我告诉你们两个,但如果你需要的是按小时分组,那么就做一个datepart(hh....

+1

为什么要把它转换为'Time'数据类型? – Thomas 2011-05-11 18:42:00

+0

@Thomas - 考虑到我只需要时间而不是约会,这不是一个好主意吗? – MrM 2011-05-11 18:47:57

+0

@ user54197 - 通过仅提取值的小时部分,您已经忽略了日期部分。没有必要明确地剥夺它然后忽略它。 – Thomas 2011-05-11 18:54:07

下面的查询对您来说可能够用了。它将计数除以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