表结构
建表
create table t7 ( a string, b string ); insert into t7 values ('2014', 'A'), ('2014', 'B'), ('2015', 'B'), ('2015', 'D');
1)合并
思路
concat_ws()
SQL
-- 合并 select a, concat_ws(',', collect_set(b)) from t7 group by a;
输出结果
2)拆分
思路
炸裂函数一列转多行
SQL
-- 拆分 select a, new_b2 from (select a, concat_ws(',', collect_set(b)) as new_b from t7 group by a) tmp lateral view explode(split(new_b, ',')) tmp2 as new_b2 order by a, new_b2;