Yun*_*ang 2 sql arrays presto amazon-athena trino
我有与此查询聚合的数组:
select field_name1,
field_name2,
"array_agg"(DISTINCT <field_name3>) "array_agg"
from <table_name>
group by <field_name1>
Run Code Online (Sandbox Code Playgroud)
问题是某些输出中包含 NULL 值。
['element1', 'element2', NULL]
Run Code Online (Sandbox Code Playgroud)
聚合值时如何从数组中删除 NULL。
我努力了
select field_name1,
field_name2,
"array_remove"("array_agg"(DISTINCT <field_name1>), NULL) "array_agg_drop_NULL""array_agg"
from <table_name>
group by <field_name1>
Run Code Online (Sandbox Code Playgroud)
但它返回的输出全部为空白。
您可以使用filter函数:
select filter(array['element1', 'element2', NULL], el -> el is not null) filtered
Run Code Online (Sandbox Code Playgroud)
输出:
| 过滤的 |
|---|
| [元素1,元素2] |