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

如何编写MySQL查询语句筛选出指导人数超过2人的员工

筛选指导人数超过2人的员工查询语句

基础查询(仅获取导师SSN和指导人数)

如果只需要知道哪些导师(SSN)的指导人数超过2人,可以用这条语句:

SELECT mentored_by AS mentor_ssn, COUNT(*) AS mentee_count
FROM employees  -- 替换成你的实际表名
WHERE mentored_by IS NOT NULL
GROUP BY mentored_by
HAVING mentee_count > 2;

语句说明:

  • WHERE mentored_by IS NOT NULL:直接排除没有导师的员工记录,避免这些数据干扰统计结果。
  • GROUP BY mentored_by:按导师的SSN分组,把所有属于同一个导师的员工归为一组。
  • COUNT(*):统计每组内的员工数量,也就是该导师的指导人数。
  • HAVING mentee_count > 2:筛选出指导人数超过2的分组,必须用HAVING而非WHERE——WHERE是分组前筛选行,HAVING是分组后筛选聚合结果。

进阶查询(获取导师完整信息)

如果需要展示导师的姓名、部门等其他信息,可以用自连接方式关联表本身:

SELECT e.SSN, e.employee_name, COUNT(m.mentored_by) AS mentee_count
FROM employees e
JOIN employees m ON e.SSN = m.mentored_by
GROUP BY e.SSN, e.employee_name  -- SELECT里的非聚合列都要放到GROUP BY中
HAVING mentee_count > 2;

语句说明:

  • 把表分别命名为e(代表导师)和m(代表被指导员工),通过e.SSN = m.mentored_by关联两者,找到每个导师对应的所有下属。
  • GROUP BY e.SSN, e.employee_name:按导师的唯一标识(SSN)和姓名分组,确保每个导师只显示一次。
  • 同样用HAVING筛选出指导人数达标导师。

新手注意事项

  • 替换语句中的employees为你实际使用的表名。
  • 如果员工姓名列不是employee_name,换成你表中对应的列名即可。
  • 可以按需添加更多导师字段到SELECT和GROUP BY中,比如部门、职位等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:04:54