【问题标题】:mysql number of rows per hourmysql每小时行数
【发布时间】:2011-04-15 06:58:40
【问题描述】:

我有一个表,其中每一行都有一个时间戳。有没有我可以运行的查询来计算每小时的行数。每小时输出一行,其中包含包含行数的字段?

例如

id timestamp

10 2010-09-19 21:05:05

11 2010-09-19 22:05:30

12 2010-09-19 23:05:05

13 2010-09-19 23:05:05

number of rows | hour
1                21
1                22
2                23

我想使用小时可能会有问题,因为会有重复的小时......所以可能是“2010-09-19 21”或者只是一个代表时间段的数字(例如在示例中 2010-09-19 21是 1)

TIA

【问题讨论】:

    标签: mysql


    【解决方案1】:

    根据 D'Arcy Rittich 的回答,这对我有用 - 几个月甚至几年:

    SELECT YEAR(timestamp), MONTH(timestamp), DAY(timestamp), HOUR(timestamp), COUNT(*) FROM MyTable WHERE timestamp BETWEEN :date1 AND :date2 GROUP BY YEAR(timestamp), MONTH(timestamp), DAY(timestamp), HOUR(timestamp);
    

    【讨论】:

      【解决方案2】:

      这取决于您的日期范围有多大。例如,如果所有日期都在一个月内,您可以这样做:

      select day(timestamp) as Day, hour(timestamp) as Hour, count(*) as Count
      from MyTable
      where timestamp between :date1 and :date2
      group by day(timestamp), hour(timestamp)
      

      如果您需要进一步分离数据,也可以按年和月分组。

      【讨论】:

      • +1 您也可以使用 TO_DAYS(),它是自 0 年以来的天数。
      • @RedFilter 你能告诉我们如何将它延长到几个月和几年吗?
      【解决方案3】:
      SELECT HOUR(hour) as hour, COUNT(*) as num_rows FROM `TABLE` GROUP BY HOUR(hour)
      

      【讨论】:

        猜你喜欢
        • 2022-11-15
        • 2023-03-11
        • 2021-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-20
        相关资源
        最近更新 更多