メインコンテンツまでスキップ
メインコンテンツまでスキップ

時間ウィンドウ関数

Experimental feature. Learn more.
Not supported in ClickHouse Cloud

時間ウィンドウ関数は、対応するウィンドウの包含下限および排他上限を返します。WindowViewを操作するための関数は以下にリストされています。

tumble

タンブリング時間ウィンドウは、重複しない連続したウィンドウにレコードを割り当て、固定の期間(interval)を持ちます。

構文

tumble(time_attr, interval [, timezone])

引数

戻り値

  • 対応するタンブリングウィンドウの包含下限および排他上限。Tuple(DateTime, DateTime)。

クエリ:

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

結果:

┌─tumble(now(), toIntervalDay('1'))─────────────┐
│ ('2024-07-04 00:00:00','2024-07-05 00:00:00') │
└───────────────────────────────────────────────┘

tumbleStart

対応するtumbling windowの包含下限を返します。

構文

tumbleStart(time_attr, interval [, timezone]);

引数

戻り値

  • 対応するタンブリングウィンドウの包含下限。DateTimeTupleまたはUInt32

クエリ:

SELECT tumbleStart(now(), toIntervalDay('1'));

結果:

┌─tumbleStart(now(), toIntervalDay('1'))─┐
│                    2024-07-04 00:00:00 │
└────────────────────────────────────────┘

tumbleEnd

対応するtumbling windowの排他上限を返します。

構文

tumbleEnd(time_attr, interval [, timezone]);

引数

戻り値

  • 対応するタンブリングウィンドウの包含下限。DateTimeTupleまたはUInt32

クエリ:

SELECT tumbleEnd(now(), toIntervalDay('1'));

結果:

┌─tumbleEnd(now(), toIntervalDay('1'))─┐
│                  2024-07-05 00:00:00 │
└──────────────────────────────────────┘

hop

ホッピング時間ウィンドウは、固定の期間(window_interval)を持ち、指定されたホップ間隔(hop_interval)でホップします。もしhop_intervalwindow_intervalより小さい場合、ホッピングウィンドウは重複します。したがって、レコードは複数のウィンドウに割り当てられる可能性があります。

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

引数

戻り値

  • 対応するホッピングウィンドウの包含下限および排他上限。Tuple(DateTime, DateTime)。
注記

1つのレコードが複数のホップウィンドウに割り当てられる可能性があるため、ホップ関数がWINDOW VIEWなしで使用されると、関数は最初のウィンドウの境界のみを返します。

クエリ:

SELECT hop(now(), INTERVAL '1' DAY, INTERVAL '2' DAY);

結果:

┌─hop(now(), toIntervalDay('1'), toIntervalDay('2'))─┐
│ ('2024-07-03 00:00:00','2024-07-05 00:00:00')      │
└────────────────────────────────────────────────────┘

hopStart

対応するhopping windowの包含下限を返します。

構文

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

引数

戻り値

  • 対応するホッピングウィンドウの包含下限。DateTimeTupleまたはUInt32
注記

1つのレコードが複数のホップウィンドウに割り当てられる可能性があるため、ホップ関数がWINDOW VIEWなしで使用されると、関数は最初のウィンドウの境界のみを返します。

クエリ:

SELECT hopStart(now(), INTERVAL '1' DAY, INTERVAL '2' DAY);

結果:

┌─hopStart(now(), toIntervalDay('1'), toIntervalDay('2'))─┐
│                                     2024-07-03 00:00:00 │
└─────────────────────────────────────────────────────────┘

hopEnd

対応するhopping windowの排他上限を返します。

構文

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

引数

戻り値

  • 対応するホッピングウィンドウの排他上限。DateTimeTupleまたはUInt32
注記

1つのレコードが複数のホップウィンドウに割り当てられる可能性があるため、ホップ関数がWINDOW VIEWなしで使用されると、関数は最初のウィンドウの境界のみを返します。

クエリ:

SELECT hopEnd(now(), INTERVAL '1' DAY, INTERVAL '2' DAY);

結果:

┌─hopEnd(now(), toIntervalDay('1'), toIntervalDay('2'))─┐
│                                   2024-07-05 00:00:00 │
└───────────────────────────────────────────────────────┘