业务场景:
表一对表二是一对多的关系,现在需用表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,只是做了去重。