Window 框架子句
適用於:Databricks SQL Databricks Runtime
指定聚合或分析 window 函式運作的 partition 內的滑動行子集。
語法
{ frame_mode frame_start |
frame_mode BETWEEN frame_start AND frame_end } }
frame_mode
{ RANGE | ROWS }
frame_start
{ UNBOUNDED PRECEDING |
offset_start PRECEDING |
CURRENT ROW |
offset_start FOLLOWING }
frame_end
{ offset_stop PRECEDING |
CURRENT ROW |
offset_stop FOLLOWING |
UNBOUNDED FOLLOWING }
Parameters
frame_mode
ROWS
如果指定,滑動 window 框架會以目前數據列前面或之後的數據列表示。
RANGE
若有指定,window 函式必須透過使用單一的表達式
obExpr
來指定一個 ORDER BY 子句。然後,滑動 window 的界限會以目前數據列
obExpr
的 offset 表示。
frame_start
相對於目前列的滑動 window 框的起始位置。
UNBOUNDED PRECEDING
指定 window 框架從 partition開頭開始。
上offset_start
如果模式為
ROWS
,offset_start
則為正整數常值數位,定義框架開始目前數據列之前的列數。如果模式為
RANGE
,offset_start
則為 型別的正常值,可從 中減obExpr
去。 框架會從 partition 的第一個數據列開始,obExpr
大於或等於目前數據列obExpr - offset_start
。CURRENT ROW
指定框架從目前數據列開始。
下列offset_start
如果模式為
ROWS
,則為正整數常值數位,offset_start
定義框架開始到目前數據列的過去多少個數據列。 如果模式為RANGE
,offset_start
則為 型別的正常值,可以加入至obExpr
。 框架將從 partition 的第一行開始,其中在目前列中,obExpr
大於或等於obExpr + offset_start
。
frame_stop
相對於目前列的滑動 window 框的結尾。
如果未指定,框架會在 CURRENT ROW 停止。 滑動 window 的結尾必須大於 window 框的開頭。
上offset_start
如果 frame_mode 為
ROWS
,offset_stop
則為正整數常值數位,定義框架停止目前數據列之前的列數。 如果frame_mode為RANGE
,offset_stop
則為與offset_start
相同類型的正常值。 框架會在滿足目前數據列中obExpr
小於或等於obExpr - offset_stop
的 partition 的最後一列結束。CURRENT ROW
指定框架在目前數據列停止。
offsetStop following
如果frame_mode為
ROWS
,則為正整數常值數位,offset_stop
定義框架結束到目前數據列的數據列數目。 如果frame_mode為RANGE
,offset_stop
則為與offset_start
相同類型的正常值。 框架在 partition 的最後一行結束,該行中數據列obExpr
小於或等於obExpr + offset_stop
。UNBOUNDED FOLLOWING
指定window幀會在partition結尾停止。