超过 1 列具有 string_agg 的唯一值

2024-07-04

我正在尝试分组并获取多列的值列表。这是一个例子:

City   | State | Income
-------+-------+--------
Salem  |  OH   | 40000
Salem  |  OH   | 45000
Mason  |  OH   | 50000
Dayton |  OH   | 60000
Salem  |  MA   | 40000
Mason  |  MA   | 45000
Mason  |  MA   | 50000
Dayton |  MA   | 70000
Salem  |  PA   | 45000
Mason  |  PA   | 50000
Dayton |  PA   | 60000

我正在寻找的结果是:

City   |  States    | Income
-------+------------+--------------
Salem  | OH,MA,PA   | 40000,45000
Mason  | OH,MA,PA   | 50000,45000
Dayton | OH,MA,PA   | 60000,70000

我设法做到了这一点:

City   |  States    | Income
-------+------------+-------------------------
Salem  | OH,MA,PA   | 40000,40000,45000,45000
Mason  | OH,MA,PA   | 50000,50000,50000,45000
Dayton | OH,MA,PA   | 60000,70000,60000

我如何从这里转到结果集?

City   |  States    | Income
-------+------------+-------------------------
Salem  | OH,MA,PA   | 40000,45000,50000
Mason  | OH,MA,PA   | 50000,45000
Dayton | OH,MA,PA   | 60000,70000

唉,你不能使用string_agg() with distinct。但您可以使用条件聚合:

select city,
       string_agg(case when seqnum_state = 1 then state end, ',') as states,
       string_agg(case when seqnum_income = 1 then income end, ',') as incomes
from (select t.*,
             row_number() over (partition by city, state order by state) as seqnum_state,
             row_number() over (partition by city, income order by income) as seqnum_income
      from t
     ) t
group by city;

是一个数据库小提琴。

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

超过 1 列具有 string_agg 的唯一值 的相关文章

  • 如何插入只有一个 IDENTITY 列的表?

    在尝试回答的过程中提出了这个问题另一个 https stackoverflow com questions 850017 how to manage groups in the database 850049 850049 考虑下面的 MS
  • 安装 SQL Server Management Studio 2016 时无法确定有效的安装目标文件夹

    安装 SSMS 2016 时 出现以下错误并且安装终止 SQL Server 2016 公用文件 无法确定安装的有效目标文件夹 我尝试过以下解决方案 删除所有文件 TEMP folder 检查一下BootstrapDir存在于 HKLM 中
  • 更改 SQL Server 中的列

    什么是正确的语法ALTER语句向现有列添加默认值 我可以毫无错误地添加新列 ALTER TABLE tb TableName ADD Record Status varchar 20 但是如果我尝试使用以下语句更改现有列以应用默认值 ALT
  • Postgres 中的动态 UNION ALL 查询

    我们使用 Postgres PostGis 连接来获取通过地理服务器发布的数据 查询现在看起来像这样 SELECT row number over ORDER BY a ogc fid AS qid a wkb geometry AS ge
  • 上下文 sp_OAMethod“发送”中的 msxml3.dll

    Win2003 SQL Server 2005 中的工作代码在 Win2012 SQL Server 2012 sp1 下无法工作 唯一 真实solution https social msdn microsoft com 443 Foru
  • 无法让链接服务器在 Sql Azure 中工作

    我们正在使用 Azure 的试用版 我们正在尝试从我们内部的 SQL Server 2012 执行跨服务器查询 我们似乎已经将我们本地的 2012 年与 Azure 联系起来了 当我进入Server Object gt Linked Ser
  • SQLConnection.Open();抛出异常

    更新旧软件 但为了保持向后兼容性 我需要连接到 mdb 访问 数据库 我使用以下连接但不断出现异常 为什么 我已经验证了路径 数据库存在等 这一切都是正确的 string Server localhost string Database d
  • 数据库异常 - 一般错误:1021 磁盘已满

    谁能帮我理解为什么这个查询说光盘已满 数据库异常 SQLSTATE HY000 一般错误 1021 磁盘已满 tmp sql 1445 3 MAI 等待有人释放一些空间 错误号 28 设备上没有剩余空间 Query 这是服务器问题 只有楼主
  • 文件夹或 SQL Server 作为二进制存储图像的更好方法是什么?

    我正在计划为客户开发一个照片库应用程序 我正在 asp net 3 5 中开发该应用程序 并希望开发它 以便我可以使用各种前端跨多个平台重复使用该应用程序 基本上 我想知道将图像作为二进制文件存储在数据库中与简单地将文件存储在应用程序文件夹
  • SQL:检查插入是否成功(在从具有两列的表中获取 8 个不同的随机行的任务中)

    Update 我解决了之前的问题 现在代码已更新 结果是唯一的并且 ID 是正确的 但新问题 结果行数通常小于要求 8 因为我添加了CREATE UNIQUE INDEX topicid on rands topicid 拒绝SQL层的重复
  • 在 PL/SQL 过程中,如何将表名作为参数传递?

    CREATE PROCEDURE A tab IN table AS BEGIN INSERT INTO tab VALUES 123 END A 我怎样才能指定参数tab是表名吗 你不能 相反 您需要将其作为 VARCHAR2 字符串传递
  • 使用 SqlBulkCopy 插入 GUID

    我正在尝试使用以下命令进行批量插入SqlBulkCopy来自由 SQL Server 管理导入导出向导创建的平面文件的类 这些文件以逗号分隔 文件中的一行可能如下所示 DCAD82A9 32EC 4351 BEDC 2F8291B40AB3
  • PHP SQLSRV:sqlsrv_query() 是否可以正确地准备 select 语句?

    TL DR Does sqlsrv query 做同样的工作select陈述比sqlsrv prepare and sqlsrv execute 关于准备好的陈述 做什么 我怎样才能做一个安全的select陈述 一点历史 我是 PHP 开发
  • 使用参数的 SQL Server 查询比使用常量字符串的查询花费的时间更长

    我在使用 MS SQL Server 2008 时遇到一个问题 当我使用硬编码字符串作为参数执行查询时 查询运行得很快 但是当我使用字符串参数时 查询需要更长的时间 常量字符串查询需要1秒 而其他则需要11秒 以下是代码 常量字符串 1秒
  • 复合主键:好还是坏?

    虽然可以使用复合主键 但是对于下面的情况 这真的是一种不好的做法吗 Stackoverflow 上的共识在这个问题上似乎是双向的 Why 我想将订单付款存储在单独的表中 原因是 一个订单可以有许多项目 这些项目以多对多关系的形式在单独的表中
  • TSQL 时间序列模式数据挖掘

    获取一个包含以下 3 个字段的 SQL 表 Id TimeStamp Item UserId 我想确定最常见的序列Item for a UserId在一次会议中 会话将简单地由时间阈值来定义 即 如果 X 分钟内没有完整的条目 则任何未来的
  • 使用 SUM() 而不使用 ISNULL() 是否安全

    我正在努力提高 SP 的性能 我对 SUM 和 ISNULL 有疑问 当我对一列求和时 我应该使用 ISNULL 吗 使用不带 ISNULL 的 SUM 安全吗 我的例子如下 SUM ISNULL COL1 0 由于 ISNULL 成本很高
  • 如何计算 django 连接表中对象的数量?

    我的问题很简单 我有Users谁拥有Assets or Assets属于用户的如果您愿意 但我无法检索其数量 计数 Assets each User有 我知道这对你们大多数人来说可能听起来很愚蠢 但我是 python django 来自 P
  • SQL 关键字使用大写有充分的理由吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 默认值似乎是大写 但是真的有理由使用大写关键字吗 I started using upper case because I was just t
  • GO 语句破坏了 .NET 中的 SQL 执行

    我有一个非常简单的 C 命令 shell 应用程序 它执行 SQL Server 生成的 SQL 脚本来编写模式和数据脚本 它在 GO 声明中爆炸了 错误信息 GO 附近的语法不正确 这是完整的 sql 脚本 Object Table gy

随机推荐

  • 可与 Microsoft Access 中的“CREATE TABLE”一起使用的字段类型

    我对为 Microsoft Access 生成表创建脚本感到不满 我还没有找到任何描述各种类型的语法的文档 我有找到了文档 http msdn microsoft com en us library bb177893 aspx对于 Acce
  • mxGraph - 导出到图像

    我正在尝试将 mxGraph 导出为 PNG 图像 在图中 HTMLLabels 设置为 true 和用于顶点标签的自定义 html 格式 使用 Div 标签 内容 在导出的图像中 显示的是原始 html 标签 而不是格式化的标签 这是 j
  • 英特尔 MKL 致命错误:无法加载 mkl_intel_thread.dll

    之前我也问过类似的问题 cx Freeze 无法找到 mkl MKL 致命错误 无法加载 mkl intel thread dll https stackoverflow com questions 57493584 cx freeze u
  • sklearn cross_val_score如何使用kfold?

    我是机器学习新手 正在尝试理解cross val score使用 Kfold 将数据拆分为 k 个折叠 kf KFold n splits 2 cv results cross val score model X train Y train
  • 如何设置matplotlib的latex路径

    我正在尝试使用 matplotlib 绘制乳胶图 我已经用 pip 安装了 Latex 这example https matplotlib org users mathtext html example效果很好 import numpy a
  • 在 Windows 上安装 NumPy

    我根本无法在 Windows 上安装 NumPy 我不断收到此错误 PS C python27 gt pip install http sourceforge net projects numpy file NumPy Collecting
  • iOS8 - 通过 itms / MDM 分发企业应用程序

    在 iOS6 和 7 中 我们已经使用以下方法成功分发了 iPad 企业应用程序itms通过我们客户网站上的页面进行方法 这对于客户来说既简单又可靠 在 iOS8 中 正如其他人所指出的 文档为itms发行版已经消失 并且清单 plist
  • 在python中使用(密码)解密SHA1

    我有一个在 Python 中使用 SHA 1 进行加密的函数 使用hashlib 我获取一个文件并使用此哈希对内容进行加密 如果我为加密文本文件设置了密码 我可以使用该密码解密并恢复原始文本文件吗 哈希函数与普通的加密算法不同 它们通常被称
  • C# 中的部分方法说明

    我很难理解的用法部分方法 您能否提供一个与 LINQ 或此类数据库无关的示例 部分方法是否与我们在 WinForms 中并在其后面进行编码时一样 如果我们使用一个方法 它会被编译 但如果我们不这样做 那么它会被编译器删除 那是对的吗 当您拥
  • Java Appengine APPSTATS 导致 java 内存不足错误

    我的 java appengine 应用程序中有几个 servlet 它们在内存中进行排序 并需要几秒钟的时间才能完成 这些完全没有错误 但是 我最近为 appengine 启用了 appstats 并开始收到以下错误 java lang
  • 从控制器访问 Liip Imagine 包 - 将服务分配给变量 (Symfony 4)

    On Symfony 4 如何从 PHP 代码中访问 Liip Imagine 包 https stackoverflow com questions 54543563 symfony 4 how do i access the liip
  • 我的标准差计算可以更加高效吗?

    我很好奇我的标准差方法是否可以变得更有效 我所说的高效是指快速 而快速是指从方法调用到方法返回的延迟 这是代码 public double stdDev ArrayList
  • 当本机应用程序启动时,将初始状态从 API 调用传递到 createStore

    当我的反应本机应用程序启动时 我在初始化 redux state 时遇到问题 我需要在应用程序启动之前进行 api 调用以检索数据以补充我的状态 我想将此调用的结果传递给我的 Provider JSX 元素中的 createStore 函数
  • Eclipse中的TFS比较(无法从左到右复制)

    我在 Eclipse 中遇到 TFS 问题 它工作得很好 但是当我尝试签入时 我被通知我发送的文件与服务器上存储的文件有冲突 我无法将更改从左侧 本地文件 复制到右侧 服务器 在比较窗口中 我只能从右到左复制 从左到右复制全部 和 从左到右
  • 在 ggplot 中为 R 中的分类变量 x 轴绘制垂直线时出现问题

    我有下表 我想使用每个县的 st date wk 列绘制一条垂直线 请参阅下面的代码 但它不会使用 st date wk 列绘制垂直线 无法弄清楚我在这里做错了什么 任何帮助表示赞赏 Thanks dfx1 YEAR Week Area a
  • iPhone 上的图像处理

    我想对 iPhone 拍摄的照片进行图像处理 该处理将涉及二维矩阵卷积等 我担心嵌套的性能NSArrays会很糟糕 操作基于像素的图像的正确方法是什么 我应该简单地使用分配的 C 数组吗malloc 你有没有看过石英二维 http deve
  • 从数组中获取特定长度的所有可能的字符串组合的算法

    从给定数组中获取具有最小和最大长度值的所有可能的字符串组合的最佳算法是什么 注意 这会增加复杂性 因为与这些链接到的问题不同 该值是可变的 例如 letters array a b c 1 2 3 min length 1 max leng
  • 导航栏标题视图对齐

    我希望我的导航栏在中间显示两件事 其中之一是列表名称 另一个是用户名称 用户名将放置在列表名称下 到目前为止我所做的是 我以编程方式创建了两个标签和一个超级视图 并设置titleView of navigationItem override
  • 如何检查Python中的列表列表中是否存在某个元素?

    我有一个与文件中的行相对应的列表列表 具有多列 col1 col2 col3 elem1 elem2 elem3 elem4 elem5 elem6 我想检查是否 例如 elem3位于任意列表中 如果在 则进入该列表 实际上我有一个需要检查
  • 超过 1 列具有 string_agg 的唯一值

    我正在尝试分组并获取多列的值列表 这是一个例子 City State Income Salem OH 40000 Salem OH 45000 Mason OH 50000 Dayton OH 60000 Salem MA 40000 Ma