hive sql 高级函数

窗口函数 over([partition by col_1] [order by col_2] [窗口选取语句] )

窗口选取语句:

rows unbounded preceding 当前行至第一行

rows x following/preceding 当前行到当前行往后/前x行

rows between x preceding and y following 从前x到后y行

rows between unbounded preceding and unbounded following 从第一行到最后一行

窗口函数:

first_value: 取分组内,排序后,截止到当前行第一个值

last_value:取分组内,排序后,截止到当前行最后一个值

lead(col,n,default): 取统计窗口内往下第n行值,第n行值为null时取default

其中n可选,默认为1,default可选,默认为null

lag(col,n,default): 取统计窗口内往上第n行值,第n行值为null时取default

分析函数:

row_number() 有相同值时生成1、2、3、4的排序

rank() 有相同值时生成1、2、2、4的排序

dense_rank() 有相同值时生成1、2、2、3的排序

ntile(n) 用于将分组数据按照顺序切分成n片,返回当前切片的桶数。如果切片不均匀,默认增加第一个切片的分布。

cume_dist() 小于等于当前值的行数/分组内总行数

percent_rank() 分组内当前值的rank值-1 / 分组内总行数-1

lateral view explode(array) tablename as name1  用在from之后,实现行转列的操作

强聚合语法:

grouping sets

cube

rollup

你可能感兴趣的:(mysql,hive,sql)