前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >hive行转列/列转行

hive行转列/列转行

作者头像
chimchim
发布2022-11-13 13:12:15
1.9K0
发布2022-11-13 13:12:15
举报
文章被收录于专栏:chimchim要努力变强啊

准备建表语句:

代码语言:javascript
复制
create table syc_ads.test_transform (
    name          string comment '姓名',
    constellation string comment '星座',
    blood         string comment '血型',
    hobby         string comment '爱好'
);

准备测试数据:

代码语言:javascript
复制
insert into table syc_ads.test_transform values('郭一','天蝎座','A','游戏,读书,滑板');
insert into table syc_ads.test_transform values('王二','白羊座','B','滑板,追剧');
insert into table syc_ads.test_transform values('孙三','白羊座','A','乒乓球,游戏');
insert into table syc_ads.test_transform values('李四','射手座','A','篮球,滑板');
insert into table syc_ads.test_transform values('赵五','白羊座','B','乒乓球,读书,滑板');
insert into table syc_ads.test_transform values('黄六','天蝎座','A','乒乓球,读书,滑板');

行转列

一、实现内容:

将用户按星座和血型归类

二、实现步骤:

先用concat_ws函数将将星座和血型用“,”连接后group by 用collect_set函数对name聚合,用concat_ws函数对聚合后的name用“|”分割

注意: collect_list不去重 collect_set去重

三、执行sql:
代码语言:javascript
复制
SELECT
    t1.a,
    CONCAT_WS("|",collect_set(t1.name))
FROM (
    SELECT
        name
        ,CONCAT_WS(',',constellation,blood) a
    FROM syc_ads.test_transform
)t1
GROUP BY t1.a
四、执行结果:
在这里插入图片描述
在这里插入图片描述

列转行

一、实现内容:

将用户的多个爱好拆分成单行展示

二、实现步骤:

先用split函数将hobby根据“,”分割成数组 lateral view结合explode函数进行拆分后的聚合

三、执行sql:
代码语言:javascript
复制
SELECT
    name,
    hobby1
FROM syc_ads.test_transform
lateral VIEW explode(split(hobby,",")) test_transform AS hobby1;
四、执行结果:
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备建表语句:
  • 准备测试数据:
  • 行转列
    • 一、实现内容:
      • 二、实现步骤:
        • 三、执行sql:
          • 四、执行结果:
          • 列转行
            • 一、实现内容:
              • 二、实现步骤:
                • 三、执行sql:
                  • 四、执行结果:
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档