首頁 > 資料庫 > mysql教程 > 如何在 PostgreSQL GROUP BY 查詢中連接字串?

如何在 PostgreSQL GROUP BY 查詢中連接字串?

DDD
發布: 2025-01-22 08:37:12
原創
504 人瀏覽過

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) 函數:
SELECT company_id, string_agg(employee, ', ')
FROM mytable
GROUP BY company_id;
登入後複製

PostgreSQL 8.4.x:

  • 使用 array_agg(expression) 函數結合 array_to_string()
SELECT company_id, array_to_string(array_agg(employee), ', ')
FROM mytable
GROUP BY company_id;
登入後複製

PostgreSQL 8.3.x 及更早版本:

  • 建立一個自訂聚合函數來連接字串:
CREATE AGGREGATE textcat_all(
    basetype = text,
    sfunc = textcat,
    stype = text,
    initcond = ''
);

SELECT company_id, textcat_all(employee)
FROM mytable
GROUP BY company_id;
登入後複製
  • 可選地,您可以建立一個函數來自訂連接行為,例如新增分隔符號。

以上是如何在 PostgreSQL GROUP BY 查詢中連接字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板