当前位置: 首页 > news >正文

微信小程序怎么关闭游戏seo公司费用

微信小程序怎么关闭游戏,seo公司费用,免费企业网站建设,公司搭建平台场景: hive有张表armmttxn_tmp,其中有一个字段lot_number,该字段以逗号分隔开多个值,每个值又以冒号来分割料号和数量,如:A3220089:-40,A3220090:-40,A3220091:-40,A3220083:-40,A3220087:-40,A3220086:-4…

场景:

hive有张表armmttxn_tmp,其中有一个字段lot_number,该字段以逗号分隔开多个值,每个值又以冒号来分割料号和数量,如:A3220089:-40,A3220090:-40,A3220091:-40,A3220083:-40,A3220087:-40,A3220086:-40,A3220088:-40,A3220084:-40,A3220081:-40,A3220082:-40,A3220092:-40,A3220093:-40,A3220085:-40,A3220094:-40。

要求:

把该字段拆分开来,并且把料号和数量单独列出,也就是分成两列。

原数据:

select 
key_id,
lot_number 
from armmttxn_tmp
where key_id = '48641906';

用到的函数:split()、explode()

 步骤:

step1:以逗号拆分开,如下:

["A3220089:-40","A3220090:-40","A3220091:-40","A3220083:-40","A3220087:-40","A3220086:-40","A3220088:-40","A3220084:-40","A3220081:-40","A3220082:-40","A3220092:-40","A3220093:-40","A3220085:-40","A3220094:-40"]

使用split函数,把数据拆分开

select 
key_id ,
split(lot_number, ',') lot_number
from armmttxn_tmp
where key_id = '48641906';

 step2:一行变成多行

select 
explode(split(lot_number, ',')) lot_number
from armmttxn_tmp
where key_id = '48641906';

 这里如果加上key_id字段,会怎样呢?

SQL 错误 [10081] [42000]: Error while compiling statement: FAILED: SemanticException [Error 10081]: UDTF's are not supported outside the SELECT clause, nor nested in expressions

原因:当使用UDTF函数的时候,hive只允许对拆分字段进行访问。
所以,可以这样使用:select explode(split(lot_number, ',')) lot_number from armmttxn_tmp where key_id = '48641906'; 

但不可以这样使用:select key_id ,explode(split(lot_number, ',')) lot_number from armmttxn_tmp where key_id = '48641906';

如果想访问除了拆分字段以外 的字段,怎么办呢?
用lateral view侧视图!

lateral view为侧视图,是为了配合UDTF来使用,把某一行数据拆分成多行数据.不加lateral view的UDTF只能提取单个字段拆分,并不能塞会原来数据表中.加上lateral view就可以将拆分的单个字段数据与原始表数据关联上.

注意:在使用lateral view的时候需要指定视图别名

--表名 lateral view UDTF(xxx) 视图别名(虚拟表名) as a,b,c(列别名)

--lateral view explode 相当于一个拆分lot_number字段的虚表,然后与原表进行关联.

step3:拆分的字段与原始表数据关联上.

select 
key_id ,
split(view.*,':') lot_number
from armmttxn_tmp lateral view explode(split(lot_number, ',')) view
where key_id = '48641906';

但还不是我们想要的最终结果,还需要把lot_number拆分成两列

step4: 拆分成两列

select 
key_id ,
split(view.*,':')[size(split(view.*, ':'))-2] as lot_number,
split(view.*,':')[size(split(view.*, ':'))-1] as quantity
from armmttxn_tmp lateral view explode(split(lot_number, ',')) view
where key_id = '48641906';

http://www.ds6.com.cn/news/12686.html

相关文章:

  • 北京汉邦未来网站建设有限公司广告竞价推广
  • 潍坊发布最新疫情通报百度推广账户优化
  • 如何制作自己的网站的邮箱seo效果分析
  • 莘庄做网站运用搜索引擎营销的案例
  • 自己做网站挣钱吗广州seo关键词优化是什么
  • 建一个分类信息网站电商运营培训班
  • 品牌购买网站黑帽seo培训
  • 宁波做网站制作靠谱的seo收费
  • 网站如何制作学校的做百度指数如何提升
  • 兰州做网站维护的公司下载百度搜索
  • 做公司网站的模板今日新闻头条10条
  • 做网站有什么js特效百度一下知道官网
  • 自己怎么建个免费网站seo公司怎么推广宣传
  • 没有域名可以做网站吗长沙企业关键词优化哪家好
  • 乐清手机网站设计如何制作自己的网页
  • 河南做网站公司有哪些投百度做广告效果怎么样
  • asp网站开发实训总结seo是指什么职位
  • 中央政府网站的建设的意见域名收录提交入口
  • 高端网站建设方案招商外包公司
  • html5简易网站建设百度识图在线使用一下
  • 南昌易动力网站建设公司南京网页搜索排名提升
  • 如何建一个简单的网站安徽网络优化公司排名
  • 做美食网站的图片素材云优客seo排名公司
  • 吉恩聊城网站建设百度站长平台官网
  • 上海网站制作建设全网热搜关键词排行榜
  • 织梦儿童早教教育培训网站模板用今日头条导入自己网站外链
  • 东莞疫情最新消息2021百度首页优化排名
  • 网站排名优化培训免费域名邮箱
  • 社交手机网站开发企业品牌推广营销方案
  • 网站建设是永久性的吗网站外链查询