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

PostgreSQL双表SQL查询需求:筛选特定条件的pkey及最小count

PostgreSQL 查询:获取符合条件的唯一pkey及最小count值

没问题,我来帮你搞定这个查询需求。核心就是两步:先筛掉那些name1出现在表2数组里的记录,再按pkey分组取最小的count值。

完整查询语句

SELECT 
    pkey,
    MIN("count") AS min_count  -- 给count加双引号避免和聚合函数重名,若列名不是count可去掉
FROM table1
WHERE NOT EXISTS (
    -- 子查询:检查当前table1的name1是否存在于table2的任意一个name数组中
    SELECT 1
    FROM table2
    WHERE table1.name1 = ANY(table2.names_array)
)
GROUP BY pkey;

关键部分解释

  • 筛选条件:用NOT EXISTS配合ANY()函数,精准排除name1出现在表2数组里的记录。ANY(table2.names_array)会检查数组中是否有和table1.name1匹配的元素,只要存在匹配,这条记录就会被过滤掉。
  • 分组与聚合:通过GROUP BY pkey确保每个pkey只返回一条结果,再用MIN("count")计算该pkey对应的最小count值,并重命名为min_count方便后续使用。

小提示

如果你的表名、列名和示例里的不一样(比如表2的数组列不叫names_array),记得替换成实际的名称哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:09:32