时间窗口函数
时间窗口函数返回相应窗口的包含下界和排除上界。以下是使用 WindowView 的函数列表
tumble
滚动时间窗口将记录分配到具有固定持续时间(interval
)的非重叠连续窗口。
语法
tumble(time_attr, interval [, timezone])
参数
返回值
示例
查询
SELECT tumble(now(), toIntervalDay('1'));
结果
┌─tumble(now(), toIntervalDay('1'))─────────────┐
│ ('2024-07-04 00:00:00','2024-07-05 00:00:00') │
└───────────────────────────────────────────────┘
tumbleStart
返回相应 滚动窗口 的包含下界。
语法
tumbleStart(time_attr, interval [, timezone]);
参数
上面的参数也可以作为 tuple 传递给函数。
返回值
示例
查询
SELECT tumbleStart(now(), toIntervalDay('1'));
结果
┌─tumbleStart(now(), toIntervalDay('1'))─┐
│ 2024-07-04 00:00:00 │
└────────────────────────────────────────┘
tumbleEnd
返回相应 滚动窗口 的排除上界。
语法
tumbleEnd(time_attr, interval [, timezone]);
参数
上面的参数也可以作为 tuple 传递给函数。
返回值
示例
查询
SELECT tumbleEnd(now(), toIntervalDay('1'));
结果
┌─tumbleEnd(now(), toIntervalDay('1'))─┐
│ 2024-07-05 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
— 时区名称(可选)。
返回值
注意
由于一条记录可以分配到多个跳跃窗口,因此当跳跃函数没有使用 WINDOW VIEW
时,该函数只返回第一个窗口的边界。
示例
查询
SELECT hop(now(), INTERVAL '1' DAY, INTERVAL '2' DAY);
结果
┌─hop(now(), toIntervalDay('1'), toIntervalDay('2'))─┐
│ ('2024-07-03 00:00:00','2024-07-05 00:00:00') │
└────────────────────────────────────────────────────┘
hopStart
返回相应 跳跃窗口 的包含下界。
语法
hopStart(time_attr, hop_interval, window_interval [, timezone]);
参数
time_attr
— 日期和时间。 DateTime.hop_interval
— 正跳跃间隔。 Interval.window_interval
— 正窗口间隔。 Interval.timezone
— 时区名称(可选)。
上面的参数也可以作为 tuple 传递给函数。
返回值
注意
由于一条记录可以分配到多个跳跃窗口,因此当跳跃函数没有使用 WINDOW VIEW
时,该函数只返回第一个窗口的边界。
示例
查询
SELECT hopStart(now(), INTERVAL '1' DAY, INTERVAL '2' DAY);
结果
┌─hopStart(now(), toIntervalDay('1'), toIntervalDay('2'))─┐
│ 2024-07-03 00:00:00 │
└─────────────────────────────────────────────────────────┘
hopEnd
返回相应 跳跃窗口 的排除上界。
语法
hopEnd(time_attr, hop_interval, window_interval [, timezone]);
参数
time_attr
— 日期和时间。 DateTime.hop_interval
— 正跳跃间隔。 Interval.window_interval
— 正窗口间隔。 Interval.timezone
— 时区名称(可选)。
上面的参数也可以作为 tuple 传递给函数。
返回值
注意
由于一条记录可以分配到多个跳跃窗口,因此当跳跃函数没有使用 WINDOW VIEW
时,该函数只返回第一个窗口的边界。
示例
查询
SELECT hopEnd(now(), INTERVAL '1' DAY, INTERVAL '2' DAY);
结果
┌─hopEnd(now(), toIntervalDay('1'), toIntervalDay('2'))─┐
│ 2024-07-05 00:00:00 │
└───────────────────────────────────────────────────────┘