代码之家  ›  专栏  ›  技术社区  ›  Simon Keep

我如何编写一些SQL来返回显示每小时内发生的行数的结果?

  •  2
  • Simon Keep  · 技术社区  · 17 年前

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

    如何计算一天中每小时内的行数?

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

    10:00-11:00 12次

    11:00-12:00 53次

    12:00-13:00等5次

    我猜这应该是一个分组,但是你是如何按小时分组的呢? 提前谢谢。

    2 回复  |  直到 17 年前
        1
  •  4
  •   Sean Bright Sean Stinehour    17 年前
    SELECT DATEPART(hh, DateTimeColumn), COUNT(*)
    FROM
        TableName
    GROUP BY
        DATEPART(hh, DateTimeColumn)
    ORDER BY
        DATEPART(hh, DateTimeColumn)
    
        2
  •  1
  •   John    17 年前

    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