假设我有这些行:
第 1 行 苹果、西瓜、菠萝
第 2 行 苹果、菠萝、橙子
第 3 行 苹果,蓝莓
我想创建从所有行中获取唯一值的单个文本值。
我们如何使用查询来实现?
预期结果:
苹果、西瓜、菠萝、橙子、蓝莓
最佳答案
试试这个:
select array_agg(val) from (
select distinct unnest(string_to_array(my_column, ',')) val from my_table) x
正在发生的事情的分割:
string_to_array()
使用指定的分隔符将字符串拆分为真正的数组unnest()
将一个数组变成单独的行 - 每个元素一个distinct
删除重复行array_agg()
将所有行连接到一个 CSV 字符串中(通常您会使用group by
子句,但这里不需要,因为只有一个组)<
关于sql - 从所有行中获取唯一值的单个文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16555932/