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

SQL查询:如何筛选仅存在于AAA区域的物品数据?

解决方案

要筛选仅在AAA区域存在、未出现在其他区域的物品数据,你需要先找出那些仅关联AAA区域的物品,再获取它们的对应记录。以下是两种可行的SQL语句:

1. 获取原始明细记录

SELECT item, qty, area
FROM MyTable
WHERE item IN (
    SELECT item
    FROM MyTable
    GROUP BY item
    -- 核心条件:该物品仅对应一个区域,且这个区域是AAA
    HAVING COUNT(DISTINCT area) = 1 AND MAX(area) = 'AAA'
)

2. 按物品聚合AAA区域的数量(匹配你原查询的聚合需求)

SELECT
    item,
    COALESCE(SUM(qty), 0) AS AAA_qty
FROM MyTable
WHERE item IN (
    SELECT item
    FROM MyTable
    GROUP BY item
    HAVING COUNT(DISTINCT area) = 1 AND MAX(area) = 'AAA'
)
GROUP BY item

原查询问题分析

你之前的SQL只是按物品分组计算了AAA区域的数量,但没有过滤那些在其他区域也有记录的物品。通过子查询里的HAVING条件,我们可以精准筛选出仅存在于AAA区域的物品,再基于这些物品获取数据,就能得到预期的5678和4578的AAA区域记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:45:27