
前段时间加入到一个数据建设的项目中作为先锋军打头阵,没办法遇到json还是硬着头皮终于学会了lateral view用法,感受:困难只是心中的一座大山!也不过如此!
我肯定我过不了几天一定会忘掉(其实已经忘掉一点了。。),没有好记性拿起烂笔头,记录在这里吧。
假设T表中有个json_txt字段取值格式如下:
如果我要得到每个学生的所有信息字段,则需要将json中的信息解析出来。
得到结果如下:
但是score和rank是以数列形式存储在同一行,不方便计算,用trans_array()函数可以解决啦:
得到的结果就是纵列的分数明细:
一、Explode用法
使用如下图:
二、Lateral View用法
首先准备一张表test,test表的数据结构如下
输出结果:
结果注解:
test本身只有4条记录, explode(map('1',100,'2',200)) 本身只有2条记录,
上述sql的原理实质上是对2个结果集做了笛卡尔积。
实现形式如下:
输出如下:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)