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])
引数
返される値
例
クエリ:
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としても関数に渡すことができます。
返される値
例
クエリ:
SELECT tumbleStart(now(), toIntervalDay('1'));
結果:
┌─tumbleStart(now(), toIntervalDay('1'))─┐
│ 2024-07-04 00:00:00 │
└────────────────────────────────────────┘
tumbleEnd
対応するタンブルウィンドウの排他的上限を返します。
構文
tumbleEnd(time_attr, interval [, timezone]);
引数
上記のパラメータはtupleとしても関数に渡すことができます。
返される値
例
クエリ:
SELECT tumbleEnd(now(), toIntervalDay('1'));
結果:
┌─tumbleEnd(now(), toIntervalDay('1'))─┐
│ 2024-07-05 00:00:00 │
└──────────────────────────────────────┘
hop
ホッピングタイムウィンドウは固定された期間(window_interval
)を持ち、指定されたホップ間隔(hop_interval
)で移動します。hop_interval
がwindow_interval
より小さい場合、ホッピングウィンドウは重複しています。したがって、レコードは複数のウィンドウに割り当てることができます。
hop(time_attr, hop_interval, window_interval [, timezone])
引数
time_attr
— 日付と時間。DateTime。hop_interval
— 正のホップ間隔。Interval。window_interval
— 正のウィンドウ間隔。Interval。timezone
— タイムゾーン名(オプション)。
返される値
:::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]);
引数
time_attr
— 日付と時間。DateTime。hop_interval
— 正のホップ間隔。Interval。window_interval
— 正のウィンドウ間隔。Interval。timezone
— タイムゾーン名(オプション)。
上記のパラメータはtupleとしても関数に渡すことができます。
返される値
:::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]);
引数
time_attr
— 日付と時間。DateTime。hop_interval
— 正のホップ間隔。Interval。window_interval
— 正のウィンドウ間隔。Interval。timezone
— タイムゾーン名(オプション)。
上記のパラメータはtupleとしても関数に渡すことができます。
返される値
:::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 │
└───────────────────────────────────────────────────────┘