Sql 按日期时间分组订购

Sql 按日期时间分组订购,sql,postgresql,Sql,Postgresql,我有以下sql: SELECT floor(extract(epoch from created_date)/3600)*3600 AS "time", count(*) as total FROM event GROUP BY time ORDER BY time 并得到以下结果: +-----------------------+----------+ | time | total | +---------------

我有以下sql:

SELECT 
  floor(extract(epoch from created_date)/3600)*3600 AS "time",
  count(*) as total
FROM event 
GROUP BY time
ORDER BY time
并得到以下结果:

+-----------------------+----------+
| time                  | total    |
+-----------------------+----------+
| 2021-03-14 16:00:00   |        2 | 
| 2021-03-14 17:00:00   |        5 | 
| 2021-03-15 06:00:00   |        2 | 
| 2021-03-15 07:00:00   |        1 | 
+-----------------------+----------+
但是,我希望得到按时间排序的结果,如:

+-----------------------+----------+
| time                  | total    |
+-----------------------+----------+
| 2021-03-15 07:00:00   |        1 | 
| 2021-03-15 06:00:00   |        2 | 
| 2021-03-14 17:00:00   |        5 | 
| 2021-03-14 16:00:00   |        2 | 
+-----------------------+----------+
我尝试的 我尝试添加
orderbytimedesc
子句,但得到(零):


是否有任何解决方案可以“正确”排序我的结果(如示例中所示)?

date\u trunc()
这样做更简单时,为什么要使用历元算法

SELECT DATE_TRUNC('hour', created_date) as time,
       count(*) as total
FROM event 
GROUP BY time
ORDER BY time;
注意:如果在
事件
中有
时间
列,则该列可能不明确。也可以重复该表达式:

SELECT DATE_TRUNC('hour', created_date) as time,
       count(*) as total
FROM event 
GROUP BY DATE_TRUNC('hour', created_date)
ORDER BY time;

请出示一些样本数据,甚至一把小提琴来展示你的行为。对我来说,这看起来很奇怪,很难重现…@s-Man我认为这种奇怪的行为是由于使用了
epoch
extract
floor
。用
date\TRUNC('hour',created\u date)
替换建筑
floor(摘录(从创建日期算起的历元)/3600)*3600
,一切开始正常工作
SELECT DATE_TRUNC('hour', created_date) as time,
       count(*) as total
FROM event 
GROUP BY DATE_TRUNC('hour', created_date)
ORDER BY time;