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

PostgreSQL合并两列去重值并获取合并后去重结果

实现两列去重值合并后再去重的SQL方案

要将ba和ca两列的去重值合并后再次去重,你可以利用PostgreSQL的UNION操作符——它会自动对合并后的结果集去重,完全匹配你的需求。

方法1:先单独去重再合并(高效简洁)

SELECT DISTINCT ba AS value FROM test_table
UNION
SELECT DISTINCT ca AS value FROM test_table;

这条语句的逻辑很直接:

  • 第一部分查询提取ba列的所有唯一值
  • 第二部分查询提取ca列的所有唯一值
  • UNION会自动合并这两个结果集,并去除重复的数值,最终得到包含5、10、11、18、20的结果。

方法2:先合并所有值再整体去重

如果需要先把两列的所有值(包含重复项)合并,再统一去重,可以用UNION ALL配合外层的DISTINCT:

SELECT DISTINCT value FROM (
    SELECT ba AS value FROM test_table
    UNION ALL
    SELECT ca AS value FROM test_table
) AS combined_data;

UNION ALL只会单纯合并两个结果集(不做去重或排序),外层的DISTINCT则对合并后的所有数值进行去重,最终效果和方法1一致。不过当原表中两列重复数据较多时,方法1的效率会更高,因为它提前减少了需要合并的数据量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:56:13