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


一、字段

字段        含义
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),通过分隔符连接两个字符串

三、结合使用

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