文档中心MogDBMogDB StackUqbar

文档:v1.1

支持的版本:

其他版本:

time_bucket

功能描述

time_bucket时间范围对齐函数,用于将一个时间按照bucket_width对齐到一个时间点,方便后续对时间聚合。

注意事项

使用time_bucket时,由于offset与origin是互斥的参数,所以time_bucket的第三个参数可能是offset(interval 类型),也可能是origin(timestamp 类型)。为了方便区分是offset还是origin使用时,如果使用offset或者origin需要显式指定第三个参数的类型,如:

select time_bucket('5minute',time,'2001-1-1 00:00:00'::timestamp) as bucket ,count(temperature) from weather group by bucket order by bucket asc;

或者

select time_bucket('1minute',time,'1minute'::interval) as bucket ,count(temperature) from weather group by bucket order by bucket asc;

语法格式

time_bucket(bucket_width, time,[offset | origin])

参数说明

参数名 类型 属性 释义
bucket_width TEXT 必选 对齐的时间间隔。只能使用'正整数+时间标识'的方式,时间标识包括interval类型支持的所有单位,包括'microsecond,millisecond,second,minute,hour,day,week,month,year,decade,century,millennium' 及这些单位的复数形式,如years、months、days等和简写形式,如y、m、d等。
time TIMESTAMP 必选 需要对齐的时间。
offset INTERVAL 可选 使用这个值调整对齐窗口位置,如果是正值,时间窗口整体向将来移动,如果是负值,窗口位置向过去移动。相当于将默认的origin移动offset的位置。
origin TIMESTAMP 可选 对齐的base,默认从’2001-1-1 00:00:00’对齐;此参数与offset互斥。

示例

Uqbar=#  select * from t1 order by time;
          time          | id | value 
------------------------+----+-------
 2022-06-02 00:01:00+08 |  1 |     9
 2022-06-02 00:04:00+08 |  1 |    11
 2022-06-02 00:06:00+08 |  1 |    10
 2022-06-02 00:07:00+08 |  1 |    11
 2022-06-02 00:15:00+08 |  1 |    12
(5 rows)

Uqbar=# select time_bucket('2 minute',time) as bucket, sum(value)  from t1 group by bucket order by bucket; 
          bucket         | sum 
------------------------------------+-----
 2022-06-02 00:00:00+08   |   9
 2022-06-02 00:04:00+08   |  11
 2022-06-02 00:06:00+08   |  21
 2022-06-02 00:14:00+08   |  12
(4 rows)
Copyright © 2011-2024 www.enmotech.com All rights reserved.