请教一个行列转置的问题,类似于excel中的透视表,下图中的数据,有办法用hive sql做出来吗?我能想到的方法是用多个union 把他们按照不同的职位合并到一起,还有其他的方法吗?
2条回答 默认 最新
关注
右边的6个列每2个列一组,加一个静态的职位字段,一共三个列,用union all拼接起来,再用字符串聚合把职位拼起来。这个方法应该是可用的。
至于用lateral view explode进行行列转换的方法,我晚上回去再研究下
弄出来了
---测试表 CREATE TABLE TEST_TABLE2 (gs varchar(1), zybh int,zyxm varchar(10), zgbh int,zgxm varchar(10), jlbh int,jlxm varchar(10)); ---测试数据 insert into TEST_TABLE2 (GS, ZYBH, ZYXM, ZGBH, ZGXM, JLBH, JLXM) values ('A', 1, '张三', 1, '张三', 2, '李四'); insert into TEST_TABLE2 (GS, ZYBH, ZYXM, ZGBH, ZGXM, JLBH, JLXM) values ('A', 3, '王五', 4, '赵六', 3, '王五'); ---查询sql select gs ,xcode ,rcode ,concat_ws(',',collect_set(substr(rname,1,2))) as zw from ( select gs, map("ZYBH", ZYBH , "ZGBH", ZGBH , "JLBH", JLBH) as rybh,map("ZYXM", ZYXM , "ZGXM", ZGXM , "JLXM", JLXM) as ryxm from TEST_TABLE2 ) x lateral view explode(rybh) exptbl1 as rname, rcode lateral view explode(ryxm) exptbl1 as xname, xcode where substr(rname,1,2)=substr(xname,1,2) group by gs,xcode,rcode
实测截图
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 问题描述:给定一个算术表达式,通过程序求出最后的结果
- ¥15 spyder运行重复
- ¥15 我用C语言easyx图形库绘制了一个3d游戏方框透视,但进入游戏时候鼠标准星对准方框边缘 鼠标光标就会弹出来这是啥情况怎样让光标对准绘制的方框点击鼠标不弹出光标好烦这样
- ¥20 用Power Query整合的问题
- ¥20 基于python进行多背包问题的多值编码
- ¥15 相同型号电脑与配置,发现主板有一台貌似缺少了好多元器件似的,会影响稳定性和使用寿命吗?
- ¥15 C语言:数据子序列基础版
- ¥20 powerbulider 导入excel文件,显示不完整
- ¥15 paddle训练自己的数据loss降不下去
- ¥20 用matlab的pdetool解决以下三个问题