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

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

Experimental feature. Learn more.
Not supported in ClickHouse Cloud

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

hop

Введена в: v21.12

Скользящее временное окно имеет фиксированную длительность (window_interval) и сдвигается на заданный интервал (hop_interval). Если hop_interval меньше window_interval, скользящие окна перекрываются. Таким образом, записи могут попадать в несколько окон.

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

Синтаксис

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

Аргументы

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

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

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

Примеры

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

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
  • window_interval — Положительный интервал окна (window). 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 без WINDOW VIEW возвращается граница только первого окна.

Синтаксис

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

Аргументы

  • time_attr — Дата и время. DateTime
  • hop_interval — Положительный интервал сдвига окна. 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

Функция tumble разбивает записи на неперекрывающиеся, последовательные временные окна фиксированной продолжительности (interval).

Синтаксис

tumble(time_attr, interval[, timezone])

Аргументы

  • time_attr — Дата и время. DateTime
  • interval — Интервал окна, тип 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-окна.

Синтаксис

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

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

Синтаксис

tumbleStart(time_attr, interval[, timezone])

Аргументы

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

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

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

Примеры

Начало фиксированного окна

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