Перейти к основному содержимому
Перейти к основному содержимому

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

Experimental feature. Learn more.
Not supported in ClickHouse Cloud

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

hop

Впервые представлена в версии: v21.12

Скользящее временное окно имеет фиксированную длительность (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). Interval
  • window_interval — Положительный интервал окна. Interval
  • timezone — Необязательный параметр. Название часового пояса. String

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

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

Примеры

Скользящее окно (hopping window)

SELECT hop(now(), INTERVAL '1' DAY, INTERVAL '2' DAY)
('2024-07-03 00:00:00','2024-07-05 00:00:00')

hopEnd

Появилась в версии: v22.1

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

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

Синтаксис

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

Аргументы

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

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

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

Примеры

Конец hopping-окна

SELECT hopEnd(now(), INTERVAL '1' DAY, INTERVAL '2' DAY)
2024-07-05 00:00:00

hopStart

Введена в версии v22.1

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

Поскольку одна запись может быть отнесена к нескольким 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(now(), INTERVAL '1' DAY, INTERVAL '2' DAY)
2024-07-03 00:00:00

tumble

Впервые представлена в: v21.12

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

Синтаксис

tumble(time_attr, interval[, timezone])

Аргументы

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

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

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

Примеры

Окно типа tumbling

SELECT tumble(now(), toIntervalDay('1'))
('2024-07-04 00:00:00','2024-07-05 00:00:00')

tumbleEnd

Впервые появилось в версии v22.1

Возвращает невключаемую верхнюю границу соответствующего окна фиксированного размера (tumbling window).

Синтаксис

tumbleEnd(time_attr, interval[, timezone])

Аргументы

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

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

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

Примеры

Окончание tumbling-окна

SELECT tumbleEnd(now(), toIntervalDay('1'))
2024-07-05 00:00:00

tumbleStart

Добавлена в версии v22.1

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

Синтаксис

tumbleStart(time_attr, interval[, timezone])

Аргументы

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

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

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

Примеры

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

SELECT tumbleStart(now(), toIntervalDay('1'))
2024-07-04 00:00:00

windowID

Добавлено в: v22.1

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

Синтаксис

windowID(time_attr, interval[, timezone])

Аргументы

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

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

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

Примеры

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

SELECT windowID(now(), toIntervalDay('1'))