PostgreSQL 數據行值連接
在關係型數據庫操作中,常常需要在獲取最終結果前對數據進行處理。一個常見任務是基於公共標識符連接多行的值。在PostgreSQL中,GROUP_CONCAT
函數為此提供了一個簡單的解決方案。
GROUP_CONCAT
函數PostgreSQL 9.0版本及以上引入了GROUP_CONCAT
聚合函數,它接收列中的一組值並將它們連接成單個字符串。 GROUP_CONCAT
的語法如下:
GROUP_CONCAT(DISTINCT expression [ORDER BY expression] [separator])
參數:
考慮名為 "sample_data" 的以下表格:
id | value |
---|---|
TM67 | 4 |
TM67 | 9 |
TM67 | 72 |
TM99 | 2 |
TM99 | 3 |
要連接每個唯一 "id" 的 "value" 列中的值,我們可以使用如下所示的 GROUP_CONCAT
:
SELECT id, GROUP_CONCAT(value) AS concatenated_values
FROM sample_data
GROUP BY id;
此查詢將產生以下輸出:
id | concatenated_values |
---|---|
TM67 | 4,9,72 |
TM99 | 2,3 |
如您所見,每個 "id" 的值已連接並用逗號分隔。
從PostgreSQL 9.0版本開始,可以使用GROUP_CONCAT
的替代語法:
SELECT id, string_agg(value, ',') AS concatenated_values
FROM sample_data
GROUP BY id;
此語法等效於上面描述的 GROUP_CONCAT
語法。
通過使用 GROUP_CONCAT
或 string_agg
函數,您可以輕鬆地在PostgreSQL中連接多行數據。 選擇哪種語法取決於您的PostgreSQL版本和個人偏好。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3