首页 > 数据库 > mysql教程 > 如何在 PostgreSQL GROUP BY 查询中连接字符串?

如何在 PostgreSQL GROUP BY 查询中连接字符串?

DDD
发布: 2025-01-22 08:37:12
原创
448 人浏览过

How to Concatenate Strings Within a PostgreSQL GROUP BY Query?

如何在 PostgreSQL 的 GROUP BY 查询中连接字符串?

问题:

在 PostgreSQL 中,如何在 GROUP BY 查询中连接字段的字符串?

示例:

考虑一个具有以下模式的表:

ID COMPANY_ID EMPLOYEE
1 1 Anna
2 1 Bill
3 2 Carol
4 2 Dave

目标是按 COMPANY_ID 分组并连接 EMPLOYEE 值,结果如下:

COMPANY_ID EMPLOYEE
1 Anna, Bill
2 Carol, Dave

解决方案:

PostgreSQL 9.0 或更高版本:

  • 使用 string_agg(expression, delimiter) 函数:
<code class="language-sql">SELECT company_id, string_agg(employee, ', ')
FROM mytable
GROUP BY company_id;</code>
登录后复制

PostgreSQL 8.4.x:

  • 使用 array_agg(expression) 函数结合 array_to_string()
<code class="language-sql">SELECT company_id, array_to_string(array_agg(employee), ', ')
FROM mytable
GROUP BY company_id;</code>
登录后复制

PostgreSQL 8.3.x 及更早版本:

  • 创建一个自定义聚合函数来连接字符串:
<code class="language-sql">CREATE AGGREGATE textcat_all(
    basetype = text,
    sfunc = textcat,
    stype = text,
    initcond = ''
);

SELECT company_id, textcat_all(employee)
FROM mytable
GROUP BY company_id;</code>
登录后复制
  • 可选地,您可以创建一个函数来自定义连接行为,例如添加分隔符。

以上是如何在 PostgreSQL GROUP BY 查询中连接字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板