我试图提取数组列的不同值。例如,如果我有两行:
{jonathan,michelle} {jonathan,michael}
输出应为:
{jonathan,michelle,michael}
输出可以是数组或“虚拟列”,这不是问题。
lx0bsm1f1#
您可以取消并重新聚合,忽略重复项:
select array_agg(distinct u.val) new_ar from mytable t cross join lateral unnest(t.ar) as u(val)
请注意,这并不能保证元素在最终数组中出现的顺序(有一些选项,但您没有在这方面指定所需的内容)。db小提琴演示:
| new_ar | | :-------------------------- | | {jonathan,michael,michelle} |
1条答案
按热度按时间lx0bsm1f1#
您可以取消并重新聚合,忽略重复项:
请注意,这并不能保证元素在最终数组中出现的顺序(有一些选项,但您没有在这方面指定所需的内容)。
db小提琴演示: