如何编写一些返回结果的SQL,显示每小时内出现的行数?

时间:2009-01-30 15:04:27

标签: sql-server tsql select

我需要生成一个SQL报告,显示特定事件在一天中每小时的时间段内发生的次数。我的表上有一个日期/时间列,其中包含事件发生的时间。

如何计算白天每小时的行数?

所以我需要看到这样的输出......

10:00 - 11:00 12次

11.00 - 12:00 53次

12:00 - 13:00 5次等

我猜这将是一个Group By,但是你如何按小时分组呢? 提前谢谢。

2 个答案:

答案 0 :(得分:4)

SELECT DATEPART(hh, DateTimeColumn), COUNT(*)
FROM
    TableName
GROUP BY
    DATEPART(hh, DateTimeColumn)
ORDER BY
    DATEPART(hh, DateTimeColumn)

答案 1 :(得分:1)

Seans解决方案仅适用于24小时的数据,因为datepart dd仅返回0-23。

如果您需要处理更多,那么您也需要在当天添加。

类似的东西:

SELECT CAST(DateTimeColumn AS INT) [day],DATEPART(hh, DateTimeColumn), COUNT(*)
FROM
    TableName
GROUP BY
    CAST(DateTimeColumn AS INT),
    DATEPART(hh, DateTimeColumn)
ORDER BY
    CAST(DateTimeColumn AS INT),
    DATEPART(hh, DateTimeColumn