ClickHouse/docs/ja/sql-reference/functions/time-window-functions.md
2024-11-18 11:58:58 +09:00

8.8 KiB

slug sidebar_position sidebar_label
/ja/sql-reference/functions/time-window-functions 175 タイムウィンドウ

Time Window Functions

タイムウィンドウ関数は、対応するウィンドウの排他的上限と包括的下限を返します。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

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

構文

tumbleStart(time_attr, interval [, timezone]);

引数

上記のパラメータはtupleとしても関数に渡すことができます。

返される値

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

クエリ:

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

結果:

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

tumbleEnd

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

構文

tumbleEnd(time_attr, interval [, timezone]);

引数

上記のパラメータはtupleとしても関数に渡すことができます。

返される値

  • 対応するタンブルウィンドウの排他的上限。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)。

:::note 一つのレコードが複数のホップウィンドウに割り当てられるため、hop関数が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]);

引数

上記のパラメータはtupleとしても関数に渡すことができます。

返される値

  • 対応するホッピングウィンドウの包括的下限。DateTime, TupleまたはUInt32

:::note 一つのレコードが複数のホップウィンドウに割り当てられるため、hop関数が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]);

引数

上記のパラメータはtupleとしても関数に渡すことができます。

返される値

  • 対応するホッピングウィンドウの排他的上限。DateTime, TupleまたはUInt32

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

クエリ:

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

結果:

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

関連コンテンツ