greenplum STRING_AGG函数转换为hiveSQL



我们必须将greenplum sql迁移到hivesql,下面的查询不支持string_agg关键字。请帮助我们。

select data_date, subscriber_id, msisdn, product, validity,
STRING_AGG(d0,'xx') d0, STRING_AGG(d1,'') d1, STRING_AGG(d2,'') d2, STRING_AGG(d3,'') d3, STRING_AGG(d4,'') d4,
STRING_AGG(d5,'') d5, STRING_AGG(d6,'') d6, STRING_AGG(d7,'') d7, STRING_AGG(d8,'') d8, STRING_AGG(d9,'') d9, STRING_AGG(d10,'') d10,
STRING_AGG(d11,'') d11
from tmp_subscription_base_02
group by 1,2,3,4,5

hivesQL不支持string_agg。

Hive中string_agg(expression, delimiter)聚合功能可替换为

concat_ws(delimiter,collect_list(cast(expression as string))

或者如果您需要连接DISTINCT值:

concat_ws(delimiter,collect_set(cast(expression as string))

注意:如果expression是字符串类型,则不需要cast(expression as string),则使用expression

相关内容

  • 没有找到相关文章

最新更新