You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL如何仅在值不同时拼接字符串?

解决PostgreSQL string_agg聚合时去重的问题

嘿,要去掉拼接结果里的重复国家值,其实只需要在string_agg函数里加上DISTINCT关键字就可以了——PostgreSQL从9.0版本开始就支持在聚合函数中使用DISTINCT来过滤重复值。

修改后的创建视图语句如下:

CREATE VIEW a AS 
SELECT project_ref, string_agg(DISTINCT country, ', ') AS country 
FROM b 
GROUP BY project_ref 
ORDER BY project_ref ASC; -- 注意你原语句里的ORDER BY写的是project_num,和表结构里的字段名不符,这里改成了project_ref,要是实际有project_num字段可以改回去

执行这段语句后,就能得到去重后的聚合结果:

project_ref | country

1 | Italy
2 | France, Italy

内容的提问来源于stack exchange,提问作者Thierry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:43:07