ClickHouse/docs/en/sql-reference/functions/window-functions.md
2021-12-07 10:05:19 +00:00

3.5 KiB

toc_priority toc_title
68 Window

Window Functions

Window functions indicate the lower and upper window bound of records in WindowView. The functions for working with WindowView are listed below.

tumble

A tumbling time window assigns records to non-overlapping, continuous windows with a fixed duration (interval).

tumble(time_attr, interval [, timezone])

Arguments

Returned values

  • The lower and upper bound of the tumble window.

Type: Tuple(DateTime, DateTime)

Example

Query:

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

Result:

┌─tumble(now(), toIntervalDay('1'))─────────────┐
│ ['2020-01-01 00:00:00','2020-01-02 00:00:00'] │
└───────────────────────────────────────────────┘

hop

A hopping time window has a fixed duration (window_interval) and hops by a specified hop interval (hop_interval). If the hop_interval is smaller than the window_interval, hopping windows are overlapping. Thus, records can be assigned to multiple windows.

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

Arguments

  • time_attr - Date and time. DateTime data type.
  • hop_interval - Hop interval in Interval data type. Should be a positive number.
  • window_interval - Window interval in Interval data type. Should be a positive number.
  • timezoneTimezone name (optional).

Returned values

  • The lower and upper bound of the hop window. Since hop windows are overlapped, the function only returns the bound of the first window when hop function is used without WINDOW VIEW.

Type: Tuple(DateTime, DateTime)

Example

Query:

SELECT hop(now(), INTERVAL '1' SECOND, INTERVAL '2' SECOND)

Result:

┌─hop(now(), toIntervalSecond('1'), toIntervalSecond('2'))──┐
│ ('2020-01-14 16:58:22','2020-01-14 16:58:24')             │
└───────────────────────────────────────────────────────────┘

tumbleStart

Indicate the lower bound of a tumble function.

tumbleStart(time_attr, interval [, timezone]);

tumbleEnd

Indicate the upper bound of a tumble function.

tumbleEnd(time_attr, interval [, timezone]);

hopStart

Indicate the lower bound of a hop function.

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

hopEnd

Indicate the upper bound of a hop function.

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