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

SQL查询:如何过滤名下存在Type=Z记录的所有同名数据?

实现方案

假设你的表名为user_type,可替换为实际表名,以下是几种常用的SQL写法:

1. 推荐写法:NOT EXISTS(性能最优,兼容所有SQL方言)

如果仅需要返回去重后的符合要求的Name:

SELECT DISTINCT Name
FROM user_type t1
WHERE NOT EXISTS (
    SELECT 1
    FROM user_type t2
    WHERE t2.Name = t1.Name
      AND t2.Type = 'Z'
);

如果需要返回符合要求的Name的全部原始记录,去掉DISTINCT即可:

SELECT Name, Type
FROM user_type t1
WHERE NOT EXISTS (
    SELECT 1
    FROM user_type t2
    WHERE t2.Name = t1.Name
      AND t2.Type = 'Z'
);

2. 简洁写法:NOT IN(仅适用于Name字段无NULL值的场景)

SELECT DISTINCT Name
FROM user_type
WHERE Name NOT IN (
    SELECT Name
    FROM user_type
    WHERE Type = 'Z'
);

3. 聚合写法:GROUP BY + HAVING(适合需要同步统计其他指标的场景)

SELECT Name
FROM user_type
GROUP BY Name
HAVING COUNT(CASE WHEN Type = 'Z' THEN 1 END) = 0;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:54:03