concat_ws 将多行记录合并成一行

CONCAT_WS(separator, str1, str2,...)

它是一个特殊形式的CONCAT()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。这个函数会跳过分隔符参数后的任何 NULL 和空字符串。分隔符将被加到被连接的字符串之间

例如

hive > select user_id, concat_ws('_',collect_set(user_name)) as names
from user group by user_id;  
OK  
1 wangwei,zhangning  
2 liyang,hemeng,sanyi  
Time taken: 3.204 seconds  

其中collect_set的作用是对user_name去重,user_name为string类型

你可能感兴趣的:(concat_ws 将多行记录合并成一行)