我有一个值为

select chipset_name from chipset

    chipset_name
    "Chip A,Chip B"
    "Chip A"
    "Chip F"
    "DSOG K"
    "FROW 01 33"
    "Chip F,DSOG K"
    ...

我想将它聚合到一行而不重复,但是如果我使用string_agg(distinct..)则有重复项
select string_agg(distinct chipset_labels,',')from chipset
----------
Chip A,Chip B,**Chip A**,Chip F,DSOG K,FROW 01 33,Chip F,**DSOG K**

如何解析和删除重复项?
谢谢

最佳答案

函数string_to_array(chipset_name, ',')将把名称转换成数组。然后unnest它们并只选择不同的值。

select distinct token
from
    chipset,
    unnest(string_to_array(chipset_name, ',')) token

   token
------------
 Chip A
 Chip B
 Chip F
 DSOG K
 FROW 01 33
(5 rows)

关于sql - 如何解析和删除聚合文本字段中的重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38481535/

10-10 02:22