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

PostgreSQL数组列过滤:筛选不被其他数组完全包含的数组

解决方案

假设你的表名为test_table,可以使用PostgreSQL的数组包含操作符@>结合NOT EXISTS子查询来实现需求:

SELECT t1.col
FROM test_table t1
WHERE NOT EXISTS (
    SELECT 1
    FROM test_table t2
    WHERE t2.col @> t1.col
      AND t2.col <> t1.col
);

逻辑说明

  • t2.col @> t1.col:判断t2的数组是否完全包含t1的数组(PostgreSQL数组包含操作符不关心元素顺序,只检查元素集合)
  • t2.col <> t1.col:排除数组自身(避免自己包含自己的情况干扰结果)
  • NOT EXISTS:筛选出不存在任何其他数组能完全包含它的数组,也就是你需要的结果

验证结果

针对你提供的测试数据,执行上述SQL后会得到预期输出:

col
-----------
 {1,5,6}
 {5,6,7}
 {2}
 {3}
 {4}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:20:30