gpt4 book ai didi

sql - 从逗号分隔的字符串中删除重复项 (Amazon Redshift)

转载 作者:行者123 更新时间:2023-12-01 23:07:03 25 4
gpt4 key购买 nike

我正在使用 Amazon Redshift。

我在该字符串中有一列存储为逗号分隔,如 Private, Private, Private, Private, Private, Private, United Healthcare。我想使用 query 从中删除重复项,因此结果应该是 Private, United Healthcare。我显然从 Stackoverflow 找到了一些解决方案,并且知道可以使用正则表达式。

因此,我尝试使用:

SELECT  regexp_replace('Private, Private, Private, Private, Private, Private, United Healthcare', '([^,]+)(,\1)+', '\1') AS insurances; 

SELECT  regexp_replace('Private, Private, Private, Private, Private, Private, United Healthcare', '([^,]+)(,\1)+', '\g') AS insurances; 

还有其他一些正则表达式,但似乎不起作用。有什么解决办法吗?

最佳答案

这是 Amazon Redshift 的用户定义函数 (UDF):

CREATE FUNCTION f_uniquify (s text)
RETURNS text
IMMUTABLE
AS $$
-- Split string by comma-space, remove duplicates, convert back to comma-separated
return ', '.join(set(s.split(', ')))
$$ LANGUAGE plpythonu;

测试它:

select f_uniquify('Private, Private, Private, Private, Private, Private, United Healthcare');

返回:

United Healthcare, Private

如果返回值的顺序很重要,那么它就需要一些更具体的代码。

关于sql - 从逗号分隔的字符串中删除重复项 (Amazon Redshift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39909615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com