| AnalyticFunction<T> |
|
| DenseRank |
|
| Lag<T> |
|
| Lead<T> |
|
| NTile |
|
| PositionalAnalyticFunction<T> |
|
| Rank |
|
| RowNumber |
|
| WindowableAggregationFunction<T> |
|
| WindowExpression<T> |
Expression{T}
^ ^
| |
WindowExpression{T} AggregationFunction{T}
^ ^ {I} WindowableFunction{T} .over()
| | ^ ^
NonWindowableAggregationFunction{T} WindowableAggregationFunction{T}.....: :.....AnalyticFunction{T}
^ ^ ^ ^ ^
| | | | |
| NumericAggregationFunction StringAggregationFunction PositionalAnalyticFunction{?} |
| ^ ^ ^ |
|- Count |- Sum |- GroupConcat |- Lead |- RowNumber
|- CountDistinct |- Avg |- Lag |- Rank
|- SumDistinct |- Min |- DenseRank
|- AvgDistinct |- Max |- NTile
|- GroupConcatDistinct
SQL.sum(a.salary) -- WindowableFunction .over()
.over() -- WindowFunctionOverStage{T} .partitionBy() .orderBy() .end()
.partitionBy(expression...) -- WindowFunctionPartitioningStage{T} .orderBy() .end()
.orderBy(expression...) -- WindowFunctionOrderingStage{T} .end()
.end() -- Expression{T}
|
| WindowFunctionFrameBoundStage<T> |
|
| WindowFunctionFrameExcludeStage<T> |
|
| WindowFunctionFrameStartedStage<T> |
|
| WindowFunctionFrameUnitStage<T> |
|
| WindowFunctionOrderingStage<T> |
|
| WindowFunctionOverStage<T> |
|
| WindowFunctionPartitioningStage<T> |
|