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

2024-06-21

我正在使用亚马逊红移。

我在该字符串中有一个列存储为逗号分隔,例如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; 

And

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

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


这里有一个用户定义函数 (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');

Returns:

United Healthcare, Private

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从逗号分隔的字符串中删除重复项 (Amazon Redshift) 的相关文章

  • 对不同记录进行 PIVOT 查询

    我有下表 Id Code percentage name name1 activity 1 Prashant 43 43 James James Running 1 Prashant 70 43 Sam Sam Cooking 1 Pras
  • SQL 外键引用

    Does FOREIGN KEY a REFERENCES A a FOREIGN KEY b REFERENCES A b 与以下含义相同 FOREIGN KEY a b REFERENCES A a b No 有两个references
  • 触发器定义中的 DELETE 语句问题

    我创建了一个插入 更新触发器 旨在根据插入的数据更新不同表中的信息 触发器执行 或应该执行 的最后一件事是从目标表中删除所有数据 这些数据的条件在触发器的插入部分期间可能已更改 除了最后的之外 一切似乎都在触发DELETE陈述 它正在执行D
  • Hive 中的 CASE 语句

    好的 我有以下代码来用二进制标志标记表中具有最高 Month cd 的记录 Select t1 month cd t2 max month cd CASE WHEN t2 max month cd null then 0 else 1 en
  • SQL Server:十进制精度/小数位数产生奇怪的结果

    我正在为一个项目编写一些 SQL 我注意到 SQL Server 中一些看似奇怪的行为 涉及除以小数时的答案 以下是一些示例 说明了我所看到的行为 DECLARE Ratio Decimal 38 16 SET Ratio CAST 210
  • 高级 MySQL:查找民意调查响应之间的相关性

    我有四个 MySQL 表 users 身份证号 姓名 polls ID 文本 options id poll id 文本 回应 id poll id 选项 id 用户 id 给定一个特定的民意调查和一个特定的选项 我想生成一个表格 显示其他
  • 将 Linq 表达式转换为 SQL Server 查询

    我正在使用一些 crm 框架 该框架没有任何内部 orm 并且不使用实体框架 仅使用纯 sql 查询 我在数据库中的每个表都有实体 所以我有例如 public class Customer public string FirstName g
  • SQL CASE 语句

    我有以下查询 我想将它们放入 sql CASE 语句中 这样我只有一个查询 但我不知道该怎么做 有人可以帮助我吗 IF SELECT EtlLoadId FROM ssislogs audit processcontrol WHERE Su
  • ssis将N个表从源服务器加载到目标服务器的最佳实践

    我需要将 N 个 大约 50 个 表从源数据库加载到目标数据库 每个表都与其他表不同 因此元数据不同 我想我可以使用父 pkg 来调用子 pkg 其中每个子 pkg 都有简单的结构 例如 DFT 来映射要导入的表 1 个子 pkg gt 1
  • 在数据库中有效存储商品位置(用于订购)

    设想 有一个用户拥有的电影数据库 电影显示在一个名为 我的电影 的页面上 电影可以按照用户想要的顺序显示 例如 位置 1 为 搏击俱乐部 位置 3 为 Drive 依此类推 显而易见的解决方案是存储每个项目的位置 例如 电影 ID 用户 I
  • 使用绑定变量动态传递表名和列名

    有没有办法使用绑定变量将列名和表名动态传递给查询 这可以通过使用简单的串联运算符来完成 但我想要一种不同的方法来实现这一目标 EDIT OPEN abc cur FOR Select column name from table name
  • 有向图 SQL

    我有以下数据集 它表示有向图中的节点 CREATE TABLE nodes NODE FROM VARCHAR2 10 NODE TO VARCHAR2 10 INSERT INTO nodes VALUES GT TG INSERT IN
  • PDO 和 Microsoft SQL:必须声明表变量“@P1”

    我正在尝试使用 PDO 中的绑定从 Microsoft SQL 数据库中选择一些条目 我正在使用的代码看起来与我在文档中找到的代码类似 但是 当我运行它时 我收到以下警告 警告 PDOStatement execute pdostateme
  • MySQL 命令输出在命令行客户端中太宽[重复]

    这个问题在这里已经有答案了 我在用mysql终端模拟器中的命令行客户端lxterminal在Ubuntu中 当我运行以下命令时 mysql gt select from routines where routine name simplep
  • LINQ-to-SQL 是否支持组合查询?

    作为一名不懂 C 的程序员 我对 LINQ 查询的求值语义很好奇 如下所示 var people from p in Person where p age lt 18 select p var otherPeople from p in p
  • 如何从表中选择层次结构中的最低级别

    我有一个具有父 子关系的表 Table A Column Id int Column Parent Id int Column Description text 一组示例数据如下 999 NULL Corp 998 999 Div1 997
  • 对 SQL Server 2005 结果进行分页

    如何在 SQL Server 2005 中对结果进行分页 我在 SQL Server 2000 中尝试过 但没有可靠的方法来做到这一点 我现在想知道SQL Server 2005是否有任何内置方法 分页的意思是 例如 如果我按用户名列出用户
  • 如何在 SQL 中编写 where 子句来按一天中的时间过滤 DATETIME 列?

    我有带有 DATETIME 列时间戳的数据 我想将其过滤到 DATETIME 介于上午 9 30 到下午 5 30 之间的任意一天的记录集 最好的方法是什么 更新 更改是因为我需要精确到分钟 而不仅仅是小时 对于那个很抱歉 您始终可以将其编
  • 计算行数并仅获取表中的最后一行

    我有一张桌子叫employeexam其结构和数据是这样的 id course id employee id degree date 1 1 3 8 2013 01 14 2 2 4 15 2013 01 14 3 2 4 17 2013 0
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做

随机推荐

  • Laravel + AngularJS Nginx 路由

    我有以下问题 我需要配置Nginx 这样在任何URL用户访问时 它都会保留uri 例如domain com some url 但仅传递给 laravel 并让 Angular 处理路由 Route get function return v
  • Google 地图地址组件地理编码与地点 API - 短名称与长名称

    嘿 GMaps API 开发人员 首先 Google Maps JS API v3 是多么令人难以置信的产品和服务 非常感谢 现在 带着那重要的真诚的感激之情 The short name vs long name地址组件的选项是一个很好的
  • 在 Flask (WSGI) 中使用全局单例,我是否需要担心竞争条件? [复制]

    这个问题在这里已经有答案了 Flask 的 hello world 演示是 from flask import Flask app Flask name app route def hello return Hello World if n
  • 如何在敏捷项目中进行版本编号? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 目前 我们的 C winforms 项目使用以下版本编号方案 主要版本 次要版本 迭代编号 该迭代中的内部版本号 我们希望能够仅通过查看版本号来
  • Spring中是否可以禁用自动验证

    我有一个 Spring 启动应用程序 我的请求类传递给我的 RestController包含javax validation我无法更改 删除的注释 它们作为第三方库提供 所以我想手动验证我的请求对象或者根本不验证它们 不幸的是 如果我添加
  • Hive 如何选择除一列之外的所有列?

    假设我的表看起来像这样 Col1 Col2 Col3 Col20 Col21 现在我想选择除 Col21 之外的所有内容 我想在插入其他表之前将其更改为 unix timestamp 因此 简单的方法是执行以下操作 INSERT INTO
  • XOR或其他简单的文件混淆方法ios目标c

    我正在开发一个使用受版权保护的 pdf 文件的 ios 应用程序 我正在寻找一些简单的方法来混淆文件以确保安全 这些方法不需要我经历额外的大众市场 CCATS 加密审查流程 但也将确保版权所有者已尽我所能来保证他们的数据安全 当然 我用密码
  • Log4j 未使用属性文件找到自定义附加程序

    我正在尝试使用以下 XML 属性文件在 Eclipse 插件项目中配置 log4j 其中包括一个名为 EclipseLoggingAppender 的自定义附加程序
  • 使用C标准数学库精确计算标准正态分布的PDF

    The probability density function of the standard normal distribution is defined as e x2 2 2 This can be rendered in stra
  • EditText 的高度不会扩展到其父级的高度

    我在滚动视图中放置了编辑文本 高度 match parent并期望它的高度等于滚动视图 但事实并非如此 它的高度就像wrap content这意味着如果 EditText 中没有文本 我必须将光标指向要弹出的软键盘的第一 行 我想要的是我可
  • 无限滚动 - ASP.NET Core MVC

    我们正在尝试在 ASP NET Core MVC 应用程序中的数据网格中实现无限滚动 搜索了很多但没有找到好的解决方案 有人在 ASP NET Core MVC 的数据网格中使用过无限滚动吗 如果是的话你能提供任何指导吗 我遇到了同样的问题
  • Google Apps 脚本返回错误“超出限制:URLFetch URL 长度”

    YouTube 数据 api v3 nextPageToken 太长 导致 Google Apps 脚本返回错误Limit Exceeded URLFetch URL Length当我尝试时UrlFetchApp fetch request
  • 使用 Log4Net 时,为什么在文件名上附加两次日期?

    我试图将日期添加到我的日志文件名中 并且通过遵循我在 stackoverflow 中找到的一些建议 我能够使其工作 一切正常 但由于某种原因 第一个文件总是附加两次日期 例如 代替日志 2009 02 23 log I get 日志 200
  • 查看/page.jsf无法恢复[重复]

    这个问题在这里已经有答案了 我有无法解决的问题 当我在页面空闲 10 分钟后刷新打开的 JSF 页面时 我收到以下错误消息 serverError class javax faces application ViewExpiredExcep
  • 如何使用循环将十进制转换为二进制?

    我想编写一个程序 将十进制数 0 到 9 转换为二进制数 我可以编写如何使用重复除法将十进制数转换为二进制数的代码 但是 我在创建一个以二进制格式打印十进制数字 0 到 9 的循环时遇到了麻烦 这是我的代码 number 0 remaind
  • 为什么这不会导致 NullPointerException?

    public class Null public static void greet System out println Hello world public static void main String args Null null
  • Telegram 授权无默认按钮

    使用 Telegram 第 3 方授权的唯一有记录的方法是使用其提供的脚本https core telegram org widgets login https core telegram org widgets login 这个脚本 正如
  • 在 for 循环中为元组赋值

    struct MIDIPacket 中有一个 UInt8 的元组 正常的赋值是这样的 import CoreMIDI let packet MIDIPacket packet data 0 0x02 packet data 1 0x5f 等
  • 在c++中定义一堆静态方法

    哪个是合适的 class xyz static int xyzOp1 static int xyzOp2 OR namespace xyz static int xyzOp1 static int xyzOp2 当我们使用类标签与命名空间标
  • 从逗号分隔的字符串中删除重复项 (Amazon Redshift)

    我正在使用亚马逊红移 我在该字符串中有一个列存储为逗号分隔 例如Private Private Private Private Private Private United Healthcare 我想使用删除其中的重复项query 所以结果