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

PostgreSQL如何直接查询两列所有唯一值并返回列表?

用PostgreSQL直接获取两列的所有唯一值列表

你可以通过合并两列数据再去重的方式,直接用SQL得到目标结果:

SELECT DISTINCT value
FROM (
    -- 注意`from`是PostgreSQL关键字,必须用双引号包裹避免语法错误
    SELECT "from" AS value FROM database
    UNION ALL
    SELECT "to" AS value FROM database
) AS combined_values;

如果想直接得到数组格式的结果(和你期望的列表结构更匹配),可以用ARRAY_AGG函数把结果聚合为数组:

SELECT ARRAY_AGG(DISTINCT value ORDER BY value) AS unique_values
FROM (
    SELECT "from" AS value FROM database
    UNION ALL
    SELECT "to" AS value FROM database
) AS combined_values;

为什么原来的查询不符合需求?

你之前的SELECT DISTINCT from,to FROM database是对两列的组合做去重,所以会把('a','b')和('b','a')当成不同的组合保留,但这不是你要的单个值的去重结果。上面的子查询先把两列所有值合并到同一列,再做去重,就能拿到所有出现过的唯一单个值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:37:02