hive如何实现多行转多列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive如何实现多行转多列相关的知识,希望对你有一定的参考价值。
问题:假设有张学生成绩表(tb)如下:
姓名 课程 分数
张三 语文 74
张三 数学 83
张三 物理 93
张三 德语 null
李四 语文 74
李四 数学 84
李四 物理 94
李四 英语 80
想变成(得到如下结果):
姓名 语文 数学 物理 英语 德语
---- ---- ---- ----
李四 74 84 94 ? 60
张三 74 83 93 80 ?
-------------------
Oracle:多列转多行
我在查到的可以把这样的字符串'17,20,23' :select '17,20,23' from dual转变为多列,sql如下:
SELECT REGEXP_SUBSTR('17,20,23', '[^,]+', 1, LEVEL, 'i') AS STR
FROM DUAL
CONNECT BY LEVEL <=
LENGTH('17,20,23') - LENGTH(REGEXP_REPLACE('17,20,23', ',', ''))+1;
但是现在我想把 '17','20','23' :select '17','20','23' from dual转为多列,不要用union all ,因为 '17','20','23' 是一个整体,请问sql怎么写?
UNPIVOT 是oracle11g后提供的列转行函数追问
不行啊,我要的结果是
17
20
23
你这条加不加unpivot 都是一样的,我的数据库是oracle11g的
或者能不能把'17','20','23' 转换为'17,20,23' ?这样我就能用上面我贴的sql查询了
以上是关于hive如何实现多行转多列的主要内容,如果未能解决你的问题,请参考以下文章