对多行进行合并(collect_set,collect_list,sort_array函数)

一、字段

字段        含义
wname      姓名
wtype      科目

 

二、函数说明(在hivesql中适用)

1、collect_set()

根据wname进行分组,将wtype进行合并,统计每个人的科目,如果有两行wname,wtype一模一样的数据,collect_set()会去重,只合并其中一行,相同的科目只出现一次

 

2、collect_list()

根据wname进行分组,将wtype进行合并,统计每个人的科目,如果有两行wname,wtype一模一样的数据,collect_list()不会去重,相同的科目会出现两次

 

3、concat_ws()

语法:concat_ws(separator,str),通过分隔符连接两个字符串

 

4、sort_array()

语法:sort_array(str),对输入数组元素进行排序

 

三、结合使用

SELECT wname,concat_ws('',sort_array(collect_set(wtype))) as exp from input group by wname

 

 

posted @ 2022-02-25 11:24  微风徐徐$  阅读(1219)  评论(0编辑  收藏  举报