我有用这个查询聚合的数组:
select field_name1,
field_name2,
"array_agg"(DISTINCT <field_name3>) "array_agg"
from <table_name>
group by <field_name1>
问题是有些输出中有NULL值。
['element1', 'element2', NULL]
在聚合值时,我们如何从数组中删除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>
但它返回所有空白的输出。
您可以使用filter
函数:
select filter(array['element1', 'element2', NULL], el -> el is not null) filtered
输出:
过滤 |
---|
[元素1,元素2] |