从多个行到唯一行的字符串字段聚合

时间:2018-01-10 17:04:59

标签: sql group-by hive hiveql

例如,我可以使用此表:

enter image description here

我想,使用HQL,将我的ID分组并汇总我的数据。结果可能是: enter image description here

像count或avg这样的运算符可以聚合这样的字符串吗?

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

您可以使用collect_list保持重复数据不变,或使用collect_set删除重复值。

select id,collect_list(data)
from tbl
group by id

答案 1 :(得分:1)

使用collect_list()将字符串聚合到数组+ concat_ws(delimiter, array<string>)以连接数组以获取分隔字符串:

select id, 
       concat_ws(' ',collect_list(data)) as aggregated_data
  from tbl
 group by id;