1)窗口函数
lag(col,n,default_val):往前第n行数据。
lead(col,n, default_val):往后第n行数据。
例:
lag(create_date,1,'0000-00-00') yesterday 该行的上一行日期,如果没有就默认0000-00-00
lead(create_date,1,'9999-99-99') tomorrow该行的下一行日期,如果没有就默认9999-99-99
一般再配合datediff(create_date,yesterday)等函数使用
first_value (col,true/false):当前窗口下的第一个值,第二个参数为true,跳过空值。
last_value (col,true/false):当前窗口下的最后一个值,第二个参数为true,跳过空值。
2)聚合函数
max:最大值。
min:最小值。
sum:求和。
avg:平均值。
count:计数。
3)排名分析函数
rank:排名相同时会重复总数不会减少。
dense_rank:排名相同时会重复总数会减少。
row_number:行号。
ntile:分组并给上组号。
排序示例
rank dense_rank row_number
10 1 1 1
20 2 2 2
20 2 2 3
30 4 3 4
40 5 4 5