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

建设主题网站步骤自适应主题 wordpress

建设主题网站步骤,自适应主题 wordpress,wordpress自定义用户头像,鹤壁做网站哪家好参考文章: HiveSql一天一个小技巧:如何不使用union all 进行列转行_不 union all-CSDN博客文章浏览阅读881次,点赞5次,收藏10次。本文给出一种不使用传统UNION ALL方法进行 行转列的方法,其中方法一采用了concat_wsposexplode()方…

参考文章:

HiveSql一天一个小技巧:如何不使用union all 进行列转行_不 union all-CSDN博客文章浏览阅读881次,点赞5次,收藏10次。本文给出一种不使用传统UNION ALL方法进行 行转列的方法,其中方法一采用了concat_ws+posexplode()方法,利用posexplode的位置索引实现key-value之间的一一对应,方法二采用explode()+case when的方法,利用case when 进行转换实现key-value之间的一一对应。_不 union allhttps://blog.csdn.net/godlovedaniel/article/details/125019658  列转行(UDTF函数:炸裂:一进多出)

0  需求分析

    

1 数据准备

create table if not exists table22
(id      int comment '用户id',name    string comment '姓名',age     string comment '年纪',gender  string comment '性别');
insert overwrite table table22
values (1, 'mimi','11','0'),(2, 'geg','32','1');

2 数据分析

 方式一:使用union all 的方式行转列

selectid,'name' as type,name   as value
from table22
union all
selectid,'age' as type,age   as value
from table22
union all
selectid,'gender' as type,gender   as value
from table22
order by id;

ps: 使用union all 方式需要注意:上下两段逻辑,对应字段的类型要一致,字段名称也必须一致

方式二:不使用union all 方法,采用 concat_ws() + posexplode()方法,利用pos的位置索引进行一一对应。(where pos1 = pos2)

完整的代码如下:

selectid,type,value
from (selectt1.id,tmp1.pos1,tmp1.item1 as value,tmp2.pos2,tmp2.item2 as typefrom (selectid,concat_ws(',', name, age, gender) as value,array('name', 'age', 'gender')    as typefrom table22) t1lateral view posexplode(split(value, ',')) tmp1 as pos1, item1lateral view posexplode(type) tmp2 as pos2, item2) t2
where pos1 = pos2;

上述的SQL简化如下:

selectid,item2 as type,item1 as value
from table22lateral view posexplode(split(concat_ws(',', name, age, gender), ',')) tmp1 as pos1, item1lateral view posexplode(array('name', 'age', 'gender')) tmp2 as pos2, item2
where tmp1.pos1 = tmp2.pos2;

    explode及posexolode炸裂函数的详细用法见文章:

HiveSQL题——炸裂函数(explode/posexplode)_hive exolode-CSDN博客文章浏览阅读1.2k次,点赞28次,收藏13次。HiveSQL题——炸裂函数(explode/posexplode)_hive exolodehttps://blog.csdn.net/SHWAITME/article/details/135941286?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170753932316800192292655%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=170753932316800192292655&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-135941286-null-null.nonecase&utm_term=%E7%82%B8%E8%A3%82%E5%93%88%E6%95%B0&spm=1018.2226.3001.4450

方式三:采用explode() + case when 方法,先用array()函数将字段封装,再利用case when与字段值进行匹配。

selectid,tmp1.type,case tmp1.typewhen 'name' then namewhen 'age' then agewhen 'gender' then genderelse null end as value
from table22lateral view explode(array('name', 'age', 'gender')) tmp1 as type

3 小结

   上述案例采用了多种【行转列】的方法,除了常规的union all 上下拼接,还可以利用 concat_ws + posexplode() 结合方式,利用炸裂函数posexplode的下角标pos来实现pos -value的一一对应; 另外还可以利用 explode()+ case when结合方式,用case when进行条件判断,一一匹配。

http://www.yayakq.cn/news/545499/

相关文章:

  • 无锡企业自助建站系统棋牌app开发价格表
  • 淄博建设网站公司app推广30元一单
  • 一般做淘宝的素材都有哪个网站杭州建站网站建设
  • 网站建设软件培训学校wordpress 评论框 美化
  • 建网站的系统美丽说网站模板
  • 快速优化网站排名软件ui设计规范包括哪些内容
  • 购物中心网站建设精准拓客营销系统
  • 给网站做导流温州阀门网站建设
  • 网站做下子压缩文件的链接大型图片库网站建设
  • 安徽省建设工程质量协会网站建设厅网站查询电工证件
  • 怎么做58同城网站教程asp.net 4.0网站开发与项目实战(全程实录)(附光盘)
  • 网站开发属于什么经营范围2018wordpress极品主题
  • 网站做2微码网站搭建教学
  • 重庆点优定制网站建设带娃儿做的工作网站
  • 网站模板 餐饮正规的h5网站
  • 网站备案 域名过期怀化网络科技有限公司
  • 佛山伦教网站设计申京效率值联盟第一
  • 模板网站和定制网站的优劣势对比粉色系 wordpress
  • 书店网站策划书公司建设网站的 计划书
  • js代码 嵌入网站石家庄网站快速排名
  • 三水网站建设公司最权威的公文写作网站
  • 教育网站设制下载wordpress在线制作网页
  • 做百度网站找谁广州软件开发兼职
  • 电商网站建设与运营方向重庆江津网站设计公司哪家好
  • 可以做视频推广的网站有哪些小程序简单还是做网站简单
  • 校园服装网站建设演示文稿阿里云建设wordpress
  • 深圳市做网站设计logo设计公司企业
  • 营销软文网站wordpress写博客插件
  • 阜阳手机网站制作软件开发项目管理的核心
  • 免费网站建设模版云盘WordPress整篇文章登录可见