lateral view explode (split(column,‘exp’)) 爆炸函数

1,已知条件:

一个表有字段如下:片区编号,分支机构编号,交易终端,客户号,客户下挂关系

2,给出需求:

求出每个分支机构的交易终端  统计粒度下的  所有下挂关系类型的  客户数量???

下挂关系类型有:

津贴1,津贴2,协助关系,经济关系,客服关系,机构序列开发,其他

技术架构:hive sql

3,业务梳理:

字段维度关系如下:片区编号>分支机构编号>交易终端>客户号= 客户下挂关系

部分数据展示如下:

在这里就需要用到爆炸函数了,但有那么亿丢丢难度,先给大家逐步拆解。

4,业务步骤:

4.1,split函数:

会把一个字符串的数据类型变成一个array数组(重点知识)!

代码如下:

结果展示:

2,Explode()函数:

要统计每种下挂关系的数量,肯定要先把关系字段炸开,然后case when 求和 sum。

Explode()函数是Hive的内置函数,也称为爆炸函数,此函数将array数组或map映射作为输入按行输出array或map中的元素,可搭配 lateral view(侧视图)使用。

代码如下:

结果展示:

ok 这个时候我们发现通过爆炸函数得到,侧视图表tmp,字段emp_type_name,

发现数组中的每一个元素都炸开成为了一条记录,实现列转行。

3,  分组汇总:

求出每个分支机构的交易终端  统计粒度下的  所有下挂关系类型的  客户数量???

咦,这个时候是不是有点思路了!!!

只要把上面炸开的数据统计求和,就可以得汇总数据!!

但又因为要求得各种下挂关系数量??这个加个行列转换(行转列)

代码如下:

结果如下:

因为这个项目刚开始,实际的业务推广也没多久,因此数据就少。

4.4结语:

本章节主要sql函数技能是利用爆炸函数把array数组炸开,分组汇总求和。

站在sql技能:(split, 爆炸函数,侧视图,聚合函数,行列转换)的制高点,轻松实现业务指标。

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不被定义喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值