# 时间窗口函数
# tumble
滚动时间窗口将记录分配给持续、不重叠的固定时长(interval
)的窗口。
tumble(time_attr, interval [, timezone])
参数
time_attr
- 日期和时间。DateTime 数据类型。interval
- 窗口间隔,使用 Interval 数据类型。timezone
— 时区名称(可选)。
返回值
- 对应滚动窗口的包含下界和不包含上界。
- 类型:
Tuple(DateTime, DateTime)
示例
SELECT tumble(now(), toIntervalDay('1'))
┌─tumble(now(), toIntervalDay('1'))─────────────┐
│ ('2023-10-27 00:00:00','2023-10-28 00:00:00') │
└───────────────────────────────────────────────┘
# hop
跳跃时间窗口具有固定的持续时间(window_interval
),并以指定的跳跃间隔(hop_interval
)进行跳跃。如果 hop_interval
小于 window_interval
,则跳跃窗口会重叠。因此,记录可以分配给多个窗口。
hop(time_attr, hop_interval, window_interval [, timezone])
参数
time_attr
- 日期和时间。DateTime 数据类型。hop_interval
- 跳跃间隔,使用 Interval 数据类型。应为正数。window_interval
- 窗口间隔,使用 Interval 数据类型。应为正数。timezone
— 时区名称(可选)。
返回值
- 对应跳跃窗口的包含下界和不包含上界。由于一条记录可以分配给多个跳跃窗口,当 hop 函数在没有
WINDOW VIEW
的情况下使用时,函数只返回第一个窗口的边界。 - 类型:
Tuple(DateTime, DateTime)
示例
SELECT hop(now(), INTERVAL '1' SECOND, INTERVAL '2' SECOND)
┌─hop(now(), toIntervalSecond('1'), toIntervalSecond('2'))──┐
│ ('2023-10-27 15:10:17','2023-10-27 15:10:19') │
└───────────────────────────────────────────────────────────┘
# tumbleStart
返回对应滚动窗口的包含下界。
tumbleStart(bounds_tuple);
tumbleStart(time_attr, interval [, timezone]);
# tumbleEnd
返回对应滚动窗口的不包含上界。
tumbleEnd(bounds_tuple);
tumbleEnd(time_attr, interval [, timezone]);
# hopStart
返回对应跳跃窗口的包含下界。
hopStart(bounds_tuple);
hopStart(time_attr, hop_interval, window_interval [, timezone]);
# hopEnd
返回对应跳跃窗口的不包含上界。
hopEnd(bounds_tuple);
hopEnd(time_attr, hop_interval, window_interval [, timezone]);