回答

收藏

Postgres存储桶按时间戳分组6小时

技术问答 技术问答 222 人阅读 | 0 人回复 | 2023-09-14

我有以下简单表:1 Z( V1 N  O" p4 x$ d. ^
ID      TIMESTAMP               VALUE4   2011-05-27 15:004 12535 -05-27 15:55:02 13046 -05-27 16:002 1327 -05-27 16:05:01 1364我想了平均VALUES,并且GROUP每TIMESTAMP一天6小时桶。比如00:00到06:00,06:00到12:00,12:00到18:00,18:00到00:00。" }- e  e& O  A+ N5 e9 d! }/ F# B& g
按年、月、日、小时使用以下查询:
5 N( S" o% j% `/ [* r! Xselect avg(VALUE), EXTRACT(year from TIMESTAMP) AS year, EXTRACT(month from TIMESTAMP) AS month, EXTRACT(day from TIMESTAMP) as day    from TABLE      group by year,month,day但我不能每天分为以上四个时间段,非常欢迎您提供任何帮助。6 V. `3 V2 }+ a: A
                                                               
& O5 g1 d8 z0 v) m- y9 n* y( b    解决方案:                                                                " k) ?5 l1 v( N1 W) g; q
                                                                我认为分组(商的小时数/ 6)商的整数值应该是有帮助的。试试看有没有帮助。你的分组应该基于# W: i! b# ?# H7 R. x5 f, b
group by year,month,day,trunc(EXTRACT(hour from TIMESTAMP) / 6)它背后的逻辑是,当日期的小时除以6点,int值只能是
8 `  `) C" h2 b                0 - 0:00 -5:59:59:59    1  - 6:00 - 11:59:59:59   2                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        - 12:00 - 17:59:59:59   3  - 18:00 - 23:59:59使用此功能进行分组应每天将您的数据分成4组,这是您需要的。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则