跳转到主要内容
时间窗口函数返回对应窗口的下界 (包含) 和上界 (不包含) 。 下面列出了用于 WindowView 的相关函数:

hop

引入版本:v21.12.0 跳跃时间窗口具有固定的窗口时长 (window_interval) ,并按指定的跳跃间隔 (hop_interval) 滑动。如果 hop_interval 小于 window_interval,则跳跃窗口会相互重叠。因此,记录可能会被分配到多个窗口。 由于一条记录可能会被分配到多个 hop 窗口,因此在不使用 WINDOW VIEW 时,hop 函数仅返回第一个窗口的边界。 语法
hop(time_attr, hop_interval, window_interval[, timezone])
参数
  • time_attr — 日期和时间。DateTime
  • hop_interval — 正的 Hop 间隔。Interval
  • window_interval — 正的窗口间隔。Interval
  • timezone — 可选。时区名称。String
返回值 返回对应跳跃窗口的下界 (含) 和上界 (不含) 。Tuple(DateTime, DateTime) 示例 跳跃窗口
Query
SELECT hop(now(), INTERVAL '1' DAY, INTERVAL '2' DAY)
Response
('2024-07-03 00:00:00','2024-07-05 00:00:00')

hopEnd

引入版本:v22.1.0 返回对应跳跃窗口的排他上界。 由于一条记录可能会被分配到多个 hop window,因此在未使用 WINDOW VIEW 的情况下使用 hop 函数时,该函数仅返回第一个窗口的边界。 语法
hopEnd(time_attr, hop_interval, window_interval[, timezone])
参数
  • time_attr — 日期和时间。DateTime
  • hop_interval — 正的 Hop 间隔。Interval
  • window_interval — 正的 Window 间隔。Interval
  • timezone — 可选。时区名称。String
返回值 返回对应跳跃窗口的独占上界。DateTime 示例 跳跃窗口 结束时间
Query
SELECT hopEnd(now(), INTERVAL '1' DAY, INTERVAL '2' DAY)
Response
2024-07-05 00:00:00

hopStart

引入版本:v22.1.0 返回对应 hopping window 的下界 (包含该下界) 。 由于一条记录可能会被分配到多个 hop window,因此在未结合 WINDOW VIEW 使用 hop 函数时,该函数只返回第一个窗口的边界。 语法
hopStart(time_attr, hop_interval, window_interval[, timezone])
参数
  • time_attr — 日期和时间。DateTime
  • hop_interval — 正的 Hop 间隔。Interval
  • window_interval — 正的窗口时间间隔。Interval
  • timezone — 可选。时区名称。String
返回值 返回对应跳跃窗口的包含下界。DateTime 示例 跳跃窗口起始时间
Query
SELECT hopStart(now(), INTERVAL '1' DAY, INTERVAL '2' DAY)
Response
2024-07-03 00:00:00

tumble

引入版本:v21.12.0 Tumbling 时间窗口会将记录分配到持续时间固定 (interval) 、连续且互不重叠的窗口中。 语法
tumble(time_attr, interval[, timezone])
参数
  • time_attr — 日期和时间。DateTime
  • interval — 窗口时间间隔,类型为 Interval。Interval
  • timezone — 可选。时区名称。String
返回值 返回对应滚动窗口的下界 (包含) 和上界 (不包含) 。Tuple(DateTime, DateTime) 示例 滚动窗口
Query
SELECT tumble(now(), toIntervalDay('1'))
Response
('2024-07-04 00:00:00','2024-07-05 00:00:00')

tumbleEnd

于以下版本引入:v22.1.0 返回相应滚动窗口不包含在内的上界。 语法
tumbleEnd(time_attr, interval[, timezone])
参数
  • time_attr — 日期和时间。DateTime
  • interval — 窗口的时间间隔。Interval
  • timezone — 可选。时区名称。String
返回值 返回对应滚动窗口的不包含上边界。DateTime 示例 滚动窗口结束
Query
SELECT tumbleEnd(now(), toIntervalDay('1'))
Response
2024-07-05 00:00:00

tumbleStart

引入版本:v22.1.0 返回对应滚动窗口的下界 (包含该下界) 。 语法
tumbleStart(time_attr, interval[, timezone])
参数
  • time_attr — 日期和时间。DateTime
  • intervalInterval 类型的窗口时间间隔。Interval
  • timezone — 可选。时区名称。String
返回值 返回对应滚动窗口的下界 (包含该边界) 。DateTime 示例 滚动窗口起始
Query
SELECT tumbleStart(now(), toIntervalDay('1'))
Response
2024-07-04 00:00:00

windowID

Introduced in:v22.1.0 返回对应滚动窗口或跳跃窗口的窗口标识符。 此函数只能与 WINDOW VIEW 配合使用。 语法
windowID(time_attr, interval[, timezone])
参数
  • time_attr — 日期和时间。DateTime
  • interval — 以 Interval 表示的窗口时间间隔。Interval
  • timezone — 可选。时区名称。String
返回值 返回对应窗口的标识符。UInt32 示例 窗口 ID
Query
SELECT windowID(now(), toIntervalDay('1'))
Response
最后修改于 2026年6月10日