WINDOW 子句
Syntax
WindowClauseOptional
::= ( 'WINDOW' WindowDefinition ( ',' WindowDefinition )* )?
WindowDefinition
::= WindowName 'AS' WindowSpec
WindowSpec
::= '(' WindowSpecDetails ')'
WindowSpecDetails
::= [ExistingWindowName] [WindowUnionClause] WindowPartitionClause WindowOrderByClause WindowFrameClause [WindowExcludeCurrentTime] [WindowInstanceNotInWindow]
WindowUnionClause
:: = ( 'UNION' TableRefs)
WindowPartitionClause
::= ( 'PARTITION' 'BY' ByList )
WindowOrderByClause
::= ( 'ORDER' 'BY' ByList )
WindowFrameClause
::= ( WindowFrameUnits WindowFrameExtent [WindowFrameMaxSize])
WindowFrameUnits
::= 'ROWS'
| 'ROWS_RANGE'
WindowFrameExtent
::= WindowFrameStart
| WindowFrameBetween
WindowFrameStart
::= ( 'UNBOUNDED' | NumLiteral | IntervalLiteral ) ['OPEN'] 'PRECEDING'
| 'CURRENT' 'ROW'
WindowFrameBetween
::= 'BETWEEN' WindowFrameBound 'AND' WindowFrameBound
WindowFrameBound
::= WindowFrameStart
| ( 'UNBOUNDED' | NumLiteral | IntervalLiteral ) ['OPEN'] 'FOLLOWING'
WindowExcludeCurrentTime
::= 'EXCLUDE' 'CURRENT_TIME'
WindowInstanceNotInWindow
:: = 'INSTANCE_NOT_IN_WINDOW'SQL语句模版
边界说明
SELECT语句元素
状态
说明
基本的WINDOW SPEC语法元素
Window Partition Clause 和 Window OrderBy Clause
Window Frame Units

Window Frame Extent
Example: 有名窗口(Named Window)
Example: 匿名窗口
Example: ROWS窗口
Example: ROWS RANGE窗口
OpenMLDB特有的WINDOW SPEC元素
Window With Union
Example: Window with union 一张副表

Example: Window with union 多张副表

Example: Window with union 样本表不进入窗口

Example: Window with union 列筛选子查询
Window Exclude Current Time
Example: ROWS窗口EXCLUDE CURRENT TIME
Example: ROW RANGE窗口EXCLUDE CURRENT TIME

Window Frame Max Size

Example: ROW RANGE 窗口MAXSIZE
Last updated