3.2.4版本,关于array_agg的结果并不是对每个列表的数据进行合并,二十将整个列表合并,这样结果类型就会变成 array<array<string>>,而不是 array<string>

【详述】

3.2.4版本,关于array_agg的结果并不是对每个列表的数据进行合并,二十将整个列表合并,这样结果类型就会变成 array<array>,而不是 array

以下sql举例:
目前 sql 结果为:

aaa lists
1 [[“aa”,“cc”],null,[“aa”,“bb”]]

难道不是下面这种结果吗?这种是期望的结果

aaa lists
1 [“aa”,“cc”,null,“bb”]

select
‘1’ as aaa
, array_distinct(array_agg(lists)) as lists
from (
select
cast(JSON_QUERY(a, ‘$.id’) as string) as id
, cast(JSON_QUERY(a, ‘$.lists’) as array) as lists
from (
select
parse_json(’{“id”:“111”, “lists”:[“aa”,“bb”]}’) as a
union all
select
parse_json(’{“id”:“222”}’) as a
union all
select
parse_json(’{“id”:“333”, “lists”:[“aa”,“cc”]}’) as a
) t1
) t2
group by aaa
;

array_agg是将一列中的值组成一个新的array,当前每行的结果都是array类型组合后的arry内部是array构成是符合预期的。
根据你给出的需求:需要先将array拆分成独立的值然后组合而不是直接使用array字段组合