栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hive行转列、列转行详解

hive行转列、列转行详解

行转列

建表语句

create table student_score
(
    name   string
   ,object string
   ,score  float
) comment '学生成绩表'
;

数据展示

nameobjectscore
张三语文60
张三数学70
李四语文80
李四数学90

行转列效果

namechinesemath
张三6070
李四8090

分析:记录行数变少了,一般是使用了group by进行了聚合操作
代码实操:

select 
	 name 
	,sum(if(object='语文',score,0)) as chinese --根据场景一般可以选择sum、max
	,sum(if(object='数学',score,0)) as math
from student_score
group by name
列转行

建表语句

create table student_score
(
    name    string
   ,chinese float
   ,math    float
) comment '学生成绩表'
;

数据展示

namechinesemath
张三6070
李四8090

列转行效果

nameobjectscore
张三语文60
张三数学70
李四语文80
李四数学90

分析:记录行数变多了,一般是使用了union on
代码实操:

select 
	 name 
	,'语文'
	,chinese
from student_score

union all 

select 
	 name 
	,'数学'
	,math
from student_score

点赞收藏吧~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/680440.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号