hive函数进阶总结

一、窗口函数与分析函数

通常在聚合函数后面加over函数限制窗口统计的规则及行数
语法:
over(partition by xxx order by xxx rows between xxx** and **xxx)

  • partition by :分组统计字段
  • order by:排序字典
  • window子句 :rows between 起点(默认是首行) and 终点(默认当前行)
    起点选择:
    n preceding:往前n条
    unbounded:起点
    unbounded preceding:从前面的起点开始
    终点选择:
    n following:往后n条
    current row:当前行
    unbounded following:表示到后面的终点结束

1、窗口排序函数

row_number() over():按顺序生成排序值,当排序 相同时,按表中记录值排序,不存在相同的排序值。
rank() over():排名相等会在名次中留下空位
dense_rank() over():排名相等会在名次中不会留下空位
三种比较
2、窗口取上下值函数

lag (col,n,DEFAULT) over() :用于统计窗口内往上第n行值
lead (col,n,DEFAULT) over() : 用于统计窗口内往下第n行值
第一个参数为列名,第二个参数为往上第n行(可选,默认为1),第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL)

3、窗口内取第一个和最后一个值

first_value(col) over() : 取分组内排序后,截止到当前行,第一个值
last_value(col) over() : 取分组内排序后,截止到当前行,最后一个值

4、窗口聚合函数
sum(col) over()
max(col) over()
min(col) over()
avg(col) over()

二、lateral view 与 explode函数结合用法

explode就是将hive一行中复杂的array或者map结构拆分成多行。
lateral view与explode结合使用把结果组合,产生一个支持别名表的虚拟表。

select
tdbank_imp_date
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值