Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

時間ウィンドウ関数

実験的な機能
ClickHouse Cloud ではサポートされていません

時間ウィンドウ関数は、対応するウィンドウの下限 (含む) と上限 (含まない) を返します。 WindowView で使用する関数を以下に示します。

hop

導入バージョン: v21.12.0

ホッピング時間ウィンドウは、固定長の (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(toDateTime('2026-01-02 03:04:05', 'UTC'), INTERVAL '1' DAY, INTERVAL '2' DAY)
('2026-01-01 00:00:00','2026-01-03 00:00:00')

hopEnd

導入バージョン: v22.1.0

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

1 つのレコードは複数のhop ウィンドウに割り当てられる可能性があるため、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(toDateTime('2026-01-02 03:04:05', 'UTC'), INTERVAL '1' DAY, INTERVAL '2' DAY)
2026-01-03 00:00:00

hopStart

導入バージョン: v22.1.0

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

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

構文

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

引数

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

戻り値

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

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

SELECT hopStart(toDateTime('2026-01-02 03:04:05', 'UTC'), INTERVAL '1' DAY, INTERVAL '2' DAY)
2026-01-01 00:00:00

tumble

導入バージョン: v21.12.0

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

構文

tumble(time_attr, interval[, timezone])

引数

  • time_attr — 日付と時刻。 DateTime
  • interval — Interval 型のウィンドウ間隔。 Interval
  • timezone — 任意。タイムゾーン名。 String

戻り値

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

タンブリングウィンドウ

SELECT tumble(toDateTime('2026-01-02 03:04:05', 'UTC'), toIntervalDay('1'))
('2026-01-02 00:00:00','2026-01-03 00:00:00')

tumbleEnd

導入バージョン: v22.1.0

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

構文

tumbleEnd(time_attr, interval[, timezone])

引数

  • time_attr — 日付と時刻。DateTime
  • interval — Interval 型のウィンドウ間隔。Interval
  • timezone — 任意。タイムゾーン名。String

戻り値

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

タンブリングウィンドウの終端

SELECT tumbleEnd(toDateTime('2026-01-02 03:04:05', 'UTC'), toIntervalDay('1'))
2026-01-03 00:00:00

tumbleStart

導入バージョン: v22.1.0

対応するタンブリングウィンドウの下限を返します。

構文

tumbleStart(time_attr, interval[, timezone])

引数

  • time_attr — 日付と時刻。DateTime
  • intervalInterval 型のウィンドウ間隔。Interval
  • timezone — 任意。タイムゾーン名。String

戻り値

対応するタンブリングウィンドウの下限を返します。DateTime

タンブリングウィンドウの開始

SELECT tumbleStart(toDateTime('2026-01-02 03:04:05', 'UTC'), toIntervalDay('1'))
2026-01-02 00:00:00

windowID

導入バージョン: v22.1.0

対応するタンブリングウィンドウまたはホッピングウィンドウの識別子を返します。 この関数は WINDOW VIEW でのみ使用できます。

構文

windowID(time_attr, interval[, timezone])

引数

  • time_attr — 日付と時刻。 DateTime
  • interval — Interval 型のウィンドウ間隔。 Interval
  • timezone — 任意。タイムゾーン名。 String

戻り値

対応するウィンドウの識別子を返します。 UInt32

ウィンドウ ID

SELECT windowID(toDateTime('2026-01-02 03:04:05', 'UTC'), toIntervalDay('1'))
1767398400
Navigation