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

PostgreSQL查询:找出显示器厂商无重复的实验室编号

解决方案:查询无重复显示器厂商的实验室编号

你的核心问题是没有按实验室维度统计厂商重复情况,全局统计自然无法满足需求。这里提供两种PostgreSQL的实现方案:

方案一:分组统计+排除重复实验室

思路:先关联表获取每个实验室的显示器厂商信息,按实验室+厂商分组统计出现次数,定位出存在厂商重复的实验室,最后从所有实验室中排除这些有问题的。

-- 先找出存在厂商重复的实验室
WITH duplicate_labs AS (
    SELECT c.laboratory_number
    FROM computer c
    JOIN monitor m ON c.id_monitor = m.id
    GROUP BY c.laboratory_number, m.id_company
    HAVING COUNT(*) > 1
)
-- 筛选出没有厂商重复的实验室
SELECT DISTINCT c.laboratory_number AS laboratory_number
FROM computer c
WHERE c.laboratory_number NOT IN (SELECT laboratory_number FROM duplicate_labs);

方案二:总设备数与唯一厂商数对比

思路:如果一个实验室的电脑总数,等于该实验室下不同显示器厂商的数量,说明所有厂商都没有重复(每台电脑的显示器厂商唯一)。

SELECT c.laboratory_number AS laboratory_number
FROM computer c
JOIN monitor m ON c.id_monitor = m.id
GROUP BY c.laboratory_number
HAVING COUNT(DISTINCT m.id_company) = COUNT(*);

测试结果

用你提供的示例数据验证,两种方案都会返回符合预期的结果:

laboratory_number
-----------------
        1

方案说明

  • 方案一逻辑直观,先定位问题实验室再排除,适合数据量较大的场景
  • 方案二更简洁,通过数量对比直接筛选,代码量少易理解

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 14:20:23