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

時間ウィンドウ関数

Experimental feature. Learn more.
Not supported in ClickHouse Cloud

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

tumble

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

構文

tumble(time_attr, interval [, timezone])

引数

返される値

クエリ:

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

結果:

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

tumbleStart

対応する タンブルウィンドウ の包含下限を返します。

構文

tumbleStart(time_attr, interval [, timezone]);

引数

返される値

  • 対応するタンブルウィンドウの包含下限。 DateTime, Tuple または UInt32

クエリ:

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

結果:

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

tumbleEnd

対応する タンブルウィンドウ の排他上限を返します。

構文

tumbleEnd(time_attr, interval [, timezone]);

引数

返される値

  • 対応するタンブルウィンドウの包含下限。 DateTime, Tuple または 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

対応する ホッピングウィンドウ の包含下限を返します。

構文

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

引数

返される値

  • 対応するホッピングウィンドウの包含下限。 DateTime, Tuple または 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

対応する ホッピングウィンドウ の排他上限を返します。

構文

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

引数

返される値

  • 対応するホッピングウィンドウの排他上限。 DateTime, Tuple または 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 │
└───────────────────────────────────────────────────────┘