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

PostgreSQL内连接查询如何去除重复数据?

PostgreSQL 内连接查询后聚合结果去重方案

你的问题根源在于多表内连接产生了笛卡尔积,导致聚合时重复值被多次计入。解决方法很直接:给每个array_agg函数加上distinct关键字就能自动去重,同时要删掉原语句末尾的多余逗号,避免语法错误。

修改后的查询语句如下:

SELECT academy_projects.project_name,
array_agg(distinct academy_technology.name) as academy_technology,
array_agg(distinct academy_users.user_name) as academy_users,
array_agg(distinct academy_classes.name) as academy_classes
FROM academy_projects
inner join academy_technology  on academy_technology.id=any(academy_projects.technology_id)
inner join academy_users  on academy_users.user_id = any(academy_projects.user_id)
inner join academy_classes  on academy_classes.id = any(academy_projects.classes_id)  
group by academy_projects.project_name

修改完成后,academy_classes这类字段会返回去重后的结果,比如你期望的{insan,scooter},不会再出现重复值。

内容的提问来源于stack exchange,提问作者Atakan Ertürk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 17:01:35