我想聚合两个数组行。例如,在下表中,颜色列已经显示了数组格式的值。
id | 颜色 |
---|---|
1 | [[红、蓝、黄]] |
2 | [[绿色]] |
1 | [[白色,蓝色]] |
2 | [[绿色,黑色]] |
通过聚合 id 并选择不同的颜色列,我想创建如下结果。
id | 颜色 |
---|---|
1 | [[红、蓝、黄、白]] |
2 | [[绿色,黑色]] |
我如何做到这一点?
Presto 有很多数组函数。我们可以试试:
select id, array_distinct(flatten(array_agg(colour))) as colours
from mytable
group by id
这假设每个数组都包含一个水果列表,因此类似于:
[Red,Blue,Yellow]
- 不是单元素子数组(如示例数据所示,如[[Red,Blue,Yellow]]
)。