如何在QuestDB中执行日历月度与季度聚合操作?
在QuestDB中实现月度/季度日历聚合的方法
当然可以在QuestDB中实现日历月度/季度聚合,你之前使用SAMPLE BY 30d的问题在于这是按固定天数(30天)滚动聚合,而非对齐自然日历周期。QuestDB的SAMPLE BY语法支持直接使用日历单位来实现你需要的效果:
1. 日历月度聚合
使用month作为采样单位,会自动对齐自然日历月(比如1月覆盖1.1-1.31,2月覆盖2.1-2.28/29等),示例SQL:
SELECT ts, min(price) FROM my_table SAMPLE BY month;
2. 日历季度聚合
同理,使用quarter作为采样单位,会按自然季度(Q1:1-3月、Q2:4-6月等)聚合:
SELECT ts, min(price) FROM my_table SAMPLE BY quarter;
额外:时区对齐
如果你的数据涉及跨时区场景,可以通过TIME ZONE子句指定时区,确保聚合对齐目标时区的日历周期:
SELECT ts, min(price) FROM my_table SAMPLE BY month TIME ZONE 'Asia/Shanghai';
内容的提问来源于stack exchange,提问作者Andrei Pechkurov
相关产品推荐
相关产品推荐

