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

基于另一行VARCHAR去重,生成仅含在职员工名册的方法咨询

筛选在职员工单行数据的解决方案

针对你描述的表结构(在职员工仅1行wages状态记录,离职员工有2行记录含term状态),可以用以下几种SQL方法筛选出仅在职的员工数据:

  • 方法一:使用NOT EXISTS子查询
    直接筛选状态为在职的记录,同时排除那些存在离职状态记录的员工:

    SELECT e1.*
    FROM employee_table e1
    WHERE e1.status = 'wages'
      AND NOT EXISTS (
          SELECT 1
          FROM employee_table e2
          WHERE e2.employee_id = e1.employee_id
            AND e2.status = 'term'
      );
    
  • 方法二:分组统计筛选
    通过分组统计每个员工的记录行数,只保留行数为1且状态为在职的员工:

    SELECT *
    FROM employee_table
    WHERE employee_id IN (
        SELECT employee_id
        FROM employee_table
        GROUP BY employee_id
        HAVING COUNT(*) = 1 AND MAX(status) = 'wages'
    );
    
  • 方法三:LEFT JOIN关联筛选
    通过自连接匹配离职状态记录,筛选出没有对应离职记录的在职行:

    SELECT e1.*
    FROM employee_table e1
    LEFT JOIN employee_table e2
      ON e1.employee_id = e2.employee_id 
      AND e2.status = 'term'
    WHERE e1.status = 'wages'
      AND e2.employee_id IS NULL;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:45:33