collect_set(col)函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。例如,如下数据记录,要统计每种no下的score,这里就可以配合group by 产生奇效。
selectno,collect_set(score)fromtest_tmp_sygroupbyno;
#返回一个列表[],‘,’隔开
collect_set,其与collect_list的区别就是会去重
selectno,collect_list(score)fromtest_tmp_sygroupbyno;
concat函数 连接函数
selectconcat(no,'-',score,'???')fromtest_tmp_sy;
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。 第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。
selectconcat_ws(',',no,score)fromtest_tmp_sy;
str_to_map 用法 (把普通数组变为字典)
selectstr_to_map(concat_ws(',',collect_set(concat(no,'-',score))),',','-')fromtest_tmp_sygroupbyno