PostgreSQL如何实现2小时间隔分组时将12~14点数据归入14点区间
PostgreSQL 按2小时间隔分组并归入区间结束时间方案
你当前的语句使用round做四舍五入计算,导致时间被对齐到离它最近的2小时整点,而你需要的是将时间对齐到所在2小时区间的结束整点,只需要把语句中的round函数替换为向上取整的ceil函数即可。
修改后的完整SQL如下:
select code,TIMESTAMP WITHOUT TIME ZONE 'epoch' + INTERVAL '1 second' * ceil(extract('epoch' from created_at) / 7200) * 7200 as created_at,COUNT ("active" ) as active from "otp" GROUP BY "code", ceil(extract('epoch' from created_at) / 7200)
修改后分组逻辑完全匹配你的需求:
- 11:59:36属于10:00~12:00区间,对齐到结束时间12:00:00
- 12:00:0013:59:59之间的所有时间属于12:0014:00区间,对齐到结束时间14:00:00
内容的提问来源于stack exchange,提问作者Divyesh Jesadiya
相关产品推荐
相关产品推荐

