array():将两列合并为一列 如 将a字段 和b字段 合并为 c字段
a | b | c |
---|---|---|
1 | 1 | “1”,“1” |
1 | 2 | “1”,“2” |
collect_list():根据某个字段分组后,把分在一组的数据合并在一起,默认分隔符’,’ 如
a | b | c |
---|---|---|
1 | 1 | “1”,“2” |
1 | 2 | “1”,"2” |
1 | 2 | “1”,“2”,“2” |
collect_set():在collect_list()的基础上去重 另:set聚合无序,可以使用sort_array()函数进行排序 select *,concat_ws(",",sort_array(collect_set(b) over(distribute by a))) c from a;
a | b | c |
---|---|---|
1 | 1 | 1,2 |
1 | 2 | 1,2 |
1 | 2 | 1,2 |
concat_ws():指定参数之间的分隔符,将数组或集合格式的数据转换为普通数据 常与array,collect_set一起用,用法请看collect_set()