hive:函数:collect_list和collect_set (列转行)

业务场景:

表一对表二是一对多的关系,现在需用表1去关联表2,但是要取表2的某条对应的最新的数据

表2格式为(同id查出多条):

select id,status from    ods.ods_aimsen_erp_comments  where recommendid =686871
1398221	加入项目
1398235	编写推荐报告
1398246	推给客户
1404211	预约初试
1404322	客户初试

 

使用collect_list函数进行行转列,将表2同一id的多行数据转为一行,然后再和表1进行关联。

select  recommendid,collect_list(status) status from    ods.ods_aimsen_erp_comments  where recommendid =686871  group by recommendid

执行效果为:

686871	["加入项目","编写推荐报告","推给客户","预约初试","客户初试"]

注意这里是多行转成了一个Array,可以对Array相应的取值:

select  recommendid,collect_list(status)[1] status from    ods.ods_aimsen_erp_comments  where recommendid =686871  group by recommendid 
686871	编写推荐报告

扫描二维码关注公众号,回复: 6797923 查看本文章

collect_set 同 collect_list,只是做了去重。

猜你喜欢

转载自blog.csdn.net/weixin_38750084/article/details/93380738