一、collect_set 和 collect_list 函数
collect_set(col) 、 collect_list(col)函数只接受基本数据类型,它的主要作用是将某字段的值汇总,产生Array类型字段,注意该函数只能接受一列参数!我们一般都会配合group by 函数,直接汇总分组数据!
collect函数也可以实现一个功能:获取group by后面没有的字段!
collect_set 和 collect_list 函数的区别很直观,set会进行去重,而list不会!
我们可以通过下标去获取数组中的数据取值时如果下标超出范围,会返回NULL
二、concat / concat_ws 函数
concat
select concat('a','b')
直接用concat函数,如果其中某一列为NULL,那么合并结果也为NULL
concat_ws
select concat_ws(',','a','b') select concat_ws(',',collect_list(cookieid))
第一个参数为指定合并分隔符
NULL字段合并对于concat_ws来说无影响!