【问题标题】:Group By Date with specific hours按日期和特定时间分组
【发布时间】:2014-11-19 16:15:55
【问题描述】:

我想根据日期对这组数据执行group by,但将23:0022:59 作为开始时间和结束时间。

例如,对于这些数据:

2014-11-05 23:04:58.0
2014-11-05 23:23:03.0
2014-11-05 23:51:54.0
2014-11-05 23:54:29.0
2014-11-05 23:58:14.0
2014-11-06 06:13:23.0
2014-11-06 06:29:58.0
2014-11-06 06:58:27.0
2014-11-06 08:21:56.0
2014-11-06 08:24:01.0
2014-11-06 23:13:47.0
2014-11-06 23:27:55.0
2014-11-06 23:30:34.0
2014-11-06 23:40:52.0
2014-11-06 23:58:53.0
2014-11-07 06:00:37.0
2014-11-07 06:23:47.0
2014-11-07 06:28:27.0
2014-11-07 06:44:13.0

我期待这样的事情:

Count | Date
-------------------
10    | 2014-11-06
9     | 2014-11-07

【问题讨论】:

标签: sql postgresql


【解决方案1】:

您可以通过在日期上加一小时来获得此聚合:

select date(timestamp + interval '1' hour) as thedate, count(*)
from table t
group by date(timestamp + interval '1' hour);

【讨论】:

    【解决方案2】:

    您可以使用 EXTRACT 函数返回小时和分组。例如:

    SELECT COUNT(date), date
    from tableName
    group by EXTRACT(hour from Date)
    

    欲了解更多信息,请参阅here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-28
      • 2017-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多