collect_set(col)函數(shù)只接受基本數(shù)據(jù)類型,它的主要作用是將某字段的值進行去重匯總蛤肌,產(chǎn)生array類型字段壁却。例如,如下數(shù)據(jù)記錄裸准,要統(tǒng)計每種no下的score展东,這里就可以配合group by 產(chǎn)生奇效。
selectno,collect_set(score)fromtest_tmp_sygroupbyno;
#返回一個列表[]炒俱,‘,’隔開
collect_set盐肃,其與collect_list的區(qū)別就是會去重
selectno,collect_list(score)fromtest_tmp_sygroupbyno;
concat函數(shù) 連接函數(shù)
selectconcat(no,'-',score,'???')fromtest_tmp_sy;
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式权悟。 第一個參數(shù)是其它參數(shù)的分隔符砸王。分隔符的位置放在要連接的兩個字符串之間。分隔符可以是一個字符串峦阁,也可以是其它參數(shù)谦铃。如果分隔符為 NULL,則結(jié)果為 NULL拇派。函數(shù)會忽略任何分隔符參數(shù)后的 NULL 值荷辕。
selectconcat_ws(',',no,score)fromtest_tmp_sy;
str_to_map 用法 (把普通數(shù)組變?yōu)樽值洌?/p>
selectstr_to_map(concat_ws(',',collect_set(concat(no,'-',score))),',','-')fromtest_tmp_sygroupbyno