【详述】
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
;