窗口框架子句
适用于: Databricks SQL Databricks Runtime
指定运行聚合或分析窗口函数的分区中的行的滑动子集。
语法
{ 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 }
参数
frame_mode
ROWS
如果已指定,则滑动窗口框架将以当前行之前或之后的行的形式表示。
RANGE
如果已指定,则窗口函数必须使用单个表达式
obExpr
指定 ORDER BY 子句。然后将滑动窗口的边界表示为从当前行的
obExpr
算起的偏移量。
frame_start
滑动窗口框架相对于当前行的起始位置。
UNBOUNDED PRECEDING
指定窗口框架从分区的开头位置开始。
offset_start PRECEDING
如果模式为
ROWS
,则offset_start
是正整数文本数字,用于定义框架从当前行之前的多少行处开始。如果模式为
RANGE
,则offset_start
是可以从obExpr
中减去的正文本类型值。 框架从obExpr
大于或等于当前行处的obExpr - offset_start
的分区的第一行处开始。CURRENT ROW
指定框架从当前行处开始。
offset_start FOLLOWING
如果模式为
ROWS
,则offset_start
是正整数文本数字,用于定义帧从当前行之后的多少行处开始。 如果模式为RANGE
,则offset_start
是可以与obExpr
相加的正文本类型值。 框架从obExpr
大于或等于当前行处的obExpr + offset_start
的分区的第一行处开始。
frame_stop
滑动窗口框架相对于当前行的结束位置。
如果未指定,则框架将在当前行处停止。 滑动窗口的结束位置必须大于窗口框架的开始位置。
offset_start PRECEDING
如果 frame_mode 为
ROWS
,则offset_stop
是正整数文本数字,用于定义框架在当前行之前的多少行处停止。 如果 frame_mode 为RANGE
,则offset_stop
是与offset_start
类型相同的正文本值。 框架在obExpr
小于或等于当前行处的obExpr - offset_stop
的分区的最后一行处结束。CURRENT ROW
指定框架在当前行处停止。
offsetStop FOLLOWING
如果 frame_mode 为
ROWS
,则offset_stop
是正整数文本数字,用于定义框架在当前行之后的多少行处结束。 如果 frame_mode 为RANGE
,则offset_stop
是与offset_start
类型相同的正文本值。 框架在obExpr
小于或等于当前行处的obExpr + offset_stop
的分区的最后一行处结束。UNBOUNDED FOLLOWING
指定窗口框架在分区的末尾处停止。