目录
本篇内容
1、行转列
2、列转行
前言
SQL之行转列及列转行一直是面试题热点,在实践工作中也用的很多,掌握列转行和行转列势在必行。
行转列
准备数据
《八佰》 战争
《八佰》 动作
《八佰》 抗日
《八佰》 剧情
《姜子牙》 动画
《姜子牙》 神话
《姜子牙》 科幻
《姜子牙》 动作
《姜子牙》 伦理
《战狼2》 战争
《战狼2》 动作
《战狼2》 灾难需要实现:
《八佰》 战争,动作,抗日,剧情
《姜子牙》 动画,神话,科幻,动作,伦理
《战狼2》 战争,动作,灾难
SQL实现
select name,
concat_ws(",",collect_list(typ)) as category
from tb_movie
group by name;
执行结果
列转行
有数据
《八佰》 战争,动作,抗日,剧情
《姜子牙》 动画,神话,科幻,动作,伦理
《战狼2》 战争,动作,灾难转化为
《八佰》 战争
《八佰》 动作
《八佰》 抗日
《八佰》 剧情
《姜子牙》 动画
《姜子牙》 神话
《姜子牙》 科幻
《姜子牙》 动作
《姜子牙》 伦理
《战狼2》 战争
《战狼2》 动作
《战狼2》 灾难
SQL实现
select name,tp
from tb_movie2
lateral view
explode(split(categorys,',')) t as tp;
更多学习、面试资料尽在微信公众号:Hadoop大数据开发