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

如何查询仅在2月(Feb)存在工作记录的员工?

查询仅在2月有工作记录的员工实现方案

基础信息

现有员工工作记录表包含emp_id(员工id)和month(工作月份)两个字段,样例数据如下:

emp_idmonth
1Jan
1Feb
2Jan
2Feb
3Feb

需求为查询仅在Feb(2月)有工作记录的员工,预期输出结果为3 Feb。

实现方法

方法1:分组聚合筛选(通用写法,兼容性强)

SELECT emp_id, 'Feb' AS month
FROM employee_records
GROUP BY emp_id
HAVING COUNT(DISTINCT month) = 1 
   AND MAX(month) = 'Feb';

逻辑说明:按员工id分组后,仅保留满足两个条件的分组:该员工的所有工作记录仅有1个不同月份,且这个唯一的月份是2月。

方法2:NOT EXISTS 关联筛选

SELECT DISTINCT emp_id, month
FROM employee_records t1
WHERE t1.month = 'Feb'
  AND NOT EXISTS (
    SELECT 1 FROM employee_records t2
    WHERE t2.emp_id = t1.emp_id 
      AND t2.month != 'Feb'
);

逻辑说明:先筛选出所有2月有工作记录的员工,再排除其中存在其他月份工作记录的员工,剩余结果即符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 02:33:02