1.概述
语法:
window_function (expression) OVER (
[ PARTITION BY part_list ]
[ ORDER BY order_list ]
[ { ROWS | RANGE } BETWEEN frame_start AND frame_end ] )
window_function(expression) 可以是下面的函数:
-
Aggregate Functions: 常用聚合函数,比如:count(*)、sum(...)、min(...)、avg(...) 等
-
Sort Functions: 数据排序函数, 比如 :dense_rank()、rank(...)、row_number(...)等
-
Analytics Functions: 取值函数, 比如:lead(...)、lag(...)、 first_value(...)等
具体还要结合实际情况使用。
注意:
1. 窗口子句必须和order by 子句同时使用,且如果指定了order by 子句未指定窗口子句,则默认为RANGE BETWEEN unbounded preceding AND CURRENT ROW (有order by 作用域:第一行~当前行,如果order by这个字段的值相同,那汇总值也是相同的)

2. 当ORDER BY和窗口从句都缺失,窗口规范默认是:ROW BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING (无order by 作用域:整个partition下)

注:默认框架为 range B

1002

被折叠的 条评论
为什么被折叠?



