greenplum STRING_AGG 函数转换为 hiveSQL
greenplum STRING_AGG functions convert to 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
string_agg 在 hivesQL 中不支持。
string_agg(expression, delimiter)
聚合函数在Hive中可以替换为
concat_ws(delimiter,collect_list(cast(expression as string))
或者如果您需要连接不同的值:
concat_ws(delimiter,collect_set(cast(expression as string))
注意:如果expression
是字符串类型,则cast(expression as string)
不是必需的,直接使用expression
。
我们必须将 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
string_agg 在 hivesQL 中不支持。
string_agg(expression, delimiter)
聚合函数在Hive中可以替换为
concat_ws(delimiter,collect_list(cast(expression as string))
或者如果您需要连接不同的值:
concat_ws(delimiter,collect_set(cast(expression as string))
注意:如果expression
是字符串类型,则cast(expression as string)
不是必需的,直接使用expression
。