sql - 如何从 Arrays PostgreSQL 的列中获取唯一值
问题描述
我正在尝试提取一列数组的 DISTINCT 值。
例如,如果我有两行:
{jonathan,michelle}
{jonathan,michael}
输出应该是:
{jonathan,michelle,michael}
输出可以是数组或“虚拟列”,这不是问题。
解决方案
您可以取消嵌套和聚合,忽略重复项:
select array_agg(distinct u.val) new_ar
from mytable t
cross join lateral unnest(t.ar) as u(val)
请注意,这并不能保证元素在最终数组中出现的顺序(有选项,但您没有在这方面指定您想要的内容)。
| new_ar | | :---------------------------- | | {乔纳森,迈克尔,米歇尔} |
推荐阅读
- awk - 如何使用正则表达式和awk来检测和提取可变长度和宽度的文本表?
- python - Python中的递归函数用于搜索列表中的项目
- python - R Shiny reticulate 包和 Python
- java - 如何为链表创建测试用例?
- c++ - 在 C++/C 中通过函数传递数组时,为什么实际参数中使用数组的地址,而形式参数中使用数组?
- python - Pytorch:RuntimeError:输入类型(torch.FloatTensor)和权重类型(torch.cuda.FloatTensor)应该相同
- excel - 如果过去 30 天,如何使用 VBA 突出显示单元格?
- git - 如何通过 netrc.gpg 文件将 git fetch 应用于 crontab
- javascript - 使用范围滑块连续更改输入值,即使鼠标仍按住滑块
- c++ - c++:错误:无法识别的命令行选项'-std=c++17'