メインコンテンツへスキップ
メインコンテンツへスキップ

時間ウィンドウ関数

Experimental feature. Learn more.
Not supported in ClickHouse Cloud

時間ウィンドウ関数は、対応するウィンドウの下側の境界(含む)と上側の境界(含まない)を返します。 WindowView を扱うための関数は以下に示します。

hop

導入バージョン: v21.12

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

1 つのレコードが複数の hop ウィンドウに割り当てられる可能性があるため、WINDOW VIEW を使用せずに hop 関数を使用した場合、この関数は最初のウィンドウの境界のみを返します。

構文

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

引数

  • time_attr — 日付と時刻。DateTime
  • hop_interval — 正のホップ間隔。Interval
  • window_interval — 正のウィンドウ間隔。Interval
  • timezone — 省略可。タイムゾーン名。String

戻り値

対応するホッピングウィンドウの下限(包含的)と上限(排他的)を返します。Tuple(DateTime, DateTime)

ホッピングウィンドウ

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

hopEnd

導入バージョン: v22.1

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

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

構文

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

引数

  • time_attr — 日付と時刻。DateTime
  • hop_interval — 正のホップ間隔。Interval
  • window_interval — 正のウィンドウ間隔。Interval
  • timezone — 省略可能。タイムゾーン名。String

戻り値

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

ホッピングウィンドウの終端

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

hopStart

導入バージョン: v22.1

対応するホップウィンドウの包含的な下限値を返します。

1 つのレコードが複数のホップウィンドウに割り当てられる可能性があるため、WINDOW VIEW を使用せずに hop 関数を使用した場合、この関数は最初のホップウィンドウの下限値のみを返します。

構文

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

引数

  • time_attr — 日付と時刻。DateTime
  • hop_interval — 正のホップ間隔。Interval
  • window_interval — 正のウィンドウ間隔。Interval
  • timezone — 省略可。タイムゾーン名。String

戻り値

対応するホッピングウィンドウの下側の(含まれる)境界を返します。DateTime

ホッピングウィンドウの開始

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

tumble

導入バージョン: v21.12

タンブリングウィンドウは、レコードを固定長(interval)の、互いに重ならない連続したウィンドウに割り当てます。

構文

tumble(time_attr, interval[, timezone])

引数

  • time_attr — 日時。DateTime
  • interval — Interval 型で指定するウィンドウ間隔。Interval
  • timezone — 省略可。タイムゾーン名。String

戻り値

対応するタンブリングウィンドウの下限(含む)と上限(含まない)を返します。Tuple(DateTime, DateTime)

タンブリングウィンドウ

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

tumbleEnd

導入バージョン: v22.1

対応するタンブリングウィンドウの非包含の上限値を返します。

構文

tumbleEnd(time_attr, interval[, timezone])

引数

  • time_attr — 日付と時刻。DateTime
  • intervalInterval 型で指定されたウィンドウ間隔。Interval
  • timezone — 省略可能。タイムゾーン名。String

戻り値

対応するタンブリングウィンドウの排他的な上限値を返します。DateTime

タンブリングウィンドウの終了時刻

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