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

如何编写SQL查询提取col2仅含'EMP'无其他值的对应col1记录

实现方案

你可以通过分组后加HAVING条件过滤的方式实现需求,以下提供两种兼容性强的通用写法:

写法1(适配所有主流数据库,逻辑简洁)

SELECT col1
FROM 你的表名 -- 替换为实际表名
GROUP BY col1
HAVING COUNT(DISTINCT col2) = 1 
   AND MAX(col2) = 'EMP';

逻辑说明:

  • COUNT(DISTINCT col2) = 1 保证同一个col1分组下,col2只有唯一的取值
  • MAX(col2) = 'EMP' 保证这个唯一的取值就是'EMP',排除其他单一值的分组(比如示例里的Date3)

写法2(灵活度更高,适合后续规则调整)

SELECT col1
FROM 你的表名 -- 替换为实际表名
GROUP BY col1
HAVING SUM(CASE WHEN col2 != 'EMP' THEN 1 ELSE 0 END) = 0
   AND SUM(CASE WHEN col2 = 'EMP' THEN 1 ELSE 0 END) >= 1;

逻辑说明:

  • 第一个条件统计分组内非'EMP'的记录数,等于0说明没有其他取值
  • 第二个条件保证分组内至少存在一条'EMP'记录,避免返回空分组

以上两种写法针对你提供的示例数据,返回结果都是DATE 2,符合要求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 14:54:06