Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Функции временных окон

Экспериментальная возможность
Не поддерживается в ClickHouse Cloud

Функции временных окон возвращают включённую нижнюю и исключённую верхнюю границу соответствующего окна. Ниже перечислены функции для работы с WindowView:

hop

Добавленный в: v21.12.0

Временное hop-окно имеет фиксированную длительность (window_interval) и сдвигается на указанный шаг (hop_interval). Если hop_interval меньше window_interval, такие окна перекрываются. Поэтому одна и та же запись может попасть в несколько окон.

Поскольку одна запись может быть отнесена к нескольким hop-окнам, при использовании функции hop без WINDOW VIEW функция возвращает только границу первого окна.

Синтаксис

hop(time_attr, hop_interval, window_interval[, timezone])

Аргументы

  • time_attr — Дата и время. DateTime
  • hop_interval — Положительный интервал hop. Interval
  • window_interval — Положительный интервал окна. Interval
  • timezone — Необязательно. Имя часового пояса. String

Возвращаемое значение

Возвращает включённую нижнюю и исключённую верхнюю границы соответствующего hopping-окна. Tuple(DateTime, DateTime)

Примеры

Hopping window

SELECT hop(toDateTime('2026-01-02 03:04:05', 'UTC'), INTERVAL '1' DAY, INTERVAL '2' DAY)
('2026-01-01 00:00:00','2026-01-03 00:00:00')

hopEnd

Добавленный в: v22.1.0

Возвращает исключённую верхнюю границу соответствующего hopping-окна.

Поскольку одна запись может относиться к нескольким hop-окнам, функция возвращает только границу первого окна, если функция hop используется без WINDOW VIEW.

Синтаксис

hopEnd(time_attr, hop_interval, window_interval[, timezone])

Аргументы

  • time_attr — Дата и время. DateTime
  • hop_interval — Положительный интервал Hop. Interval
  • window_interval — Положительный интервал окна. Interval
  • timezone — Необязательно. Имя часового пояса. String

Возвращаемое значение

Возвращает исключённую верхнюю границу соответствующего hopping-окна. DateTime

Примеры

Конец hopping-окна

SELECT hopEnd(toDateTime('2026-01-02 03:04:05', 'UTC'), INTERVAL '1' DAY, INTERVAL '2' DAY)
2026-01-03 00:00:00

hopStart

Добавленный в: v22.1.0

Возвращает включённую нижнюю границу соответствующего hopping-окна.

Поскольку одна запись может быть отнесена к нескольким hop-окнам, при использовании функции hop без WINDOW VIEW функция возвращает границу только первого окна.

Синтаксис

hopStart(time_attr, hop_interval, window_interval[, timezone])

Аргументы

  • time_attr — Дата и время. DateTime
  • hop_interval — Положительный интервал hop. Interval
  • window_interval — Положительный интервал окна. Interval
  • timezone — Необязательно. Имя часового пояса. String

Возвращаемое значение

Возвращает нижнюю границу соответствующего hopping-окна (включительно). DateTime

Примеры

Начало hopping-окна

SELECT hopStart(toDateTime('2026-01-02 03:04:05', 'UTC'), INTERVAL '1' DAY, INTERVAL '2' DAY)
2026-01-01 00:00:00

tumble

Добавленный в: v21.12.0

Временное неперекрывающееся окно распределяет записи по неперекрывающимся последовательным окнам фиксированной длительности (interval).

Синтаксис

tumble(time_attr, interval[, timezone])

Аргументы

  • time_attr — Дата и время. DateTime
  • interval — Интервал окна, заданный типом Interval. Interval
  • timezone — Необязательно. Имя часового пояса. String

Возвращаемое значение

Возвращает нижнюю границу (включительно) и исключённую верхнюю границу соответствующего неперекрывающегося окна. Tuple(DateTime, DateTime)

Примеры

Неперекрывающееся окно

SELECT tumble(toDateTime('2026-01-02 03:04:05', 'UTC'), toIntervalDay('1'))
('2026-01-02 00:00:00','2026-01-03 00:00:00')

tumbleEnd

Добавленный в: v22.1.0

Возвращает исключённую верхнюю границу соответствующего неперекрывающегося окна.

Синтаксис

tumbleEnd(time_attr, interval[, timezone])

Аргументы

  • time_attr — Дата и время. DateTime
  • interval — Интервал окна типа Interval. Interval
  • timezone — Необязательно. Имя часового пояса. String

Возвращаемое значение

Возвращает исключённую верхнюю границу соответствующего неперекрывающегося окна. DateTime

Примеры

Конец неперекрывающегося окна

SELECT tumbleEnd(toDateTime('2026-01-02 03:04:05', 'UTC'), toIntervalDay('1'))
2026-01-03 00:00:00

tumbleStart

Добавленный в: v22.1.0

Возвращает нижнюю границу соответствующего неперекрывающегося окна (включительно).

Синтаксис

tumbleStart(time_attr, interval[, timezone])

Аргументы

  • time_attr — Дата и время. DateTime
  • interval — Интервал окна типа Interval. Interval
  • timezone — Необязательно. Имя часового пояса. String

Возвращаемое значение

Возвращает нижнюю границу (включительно) соответствующего неперекрывающегося окна. DateTime

Примеры

Начало неперекрывающегося окна

SELECT tumbleStart(toDateTime('2026-01-02 03:04:05', 'UTC'), toIntervalDay('1'))
2026-01-02 00:00:00

windowID

Добавленный в: v22.1.0

Возвращает идентификатор соответствующего неперекрывающегося окна или hopping-окна. Эту функцию можно использовать только с WINDOW VIEW.

Синтаксис

windowID(time_attr, interval[, timezone])

Аргументы

  • time_attr — Дата и время. DateTime
  • interval — Интервал окна, тип Interval. Interval
  • timezone — Необязательно. имя часового пояса. String

Возвращаемое значение

Возвращает идентификатор соответствующего окна. UInt32

Примеры

Идентификатор окна

SELECT windowID(toDateTime('2026-01-02 03:04:05', 'UTC'), toIntervalDay('1'))
1767398400
Navigation