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

基于EMPLOYEE与DEPARTMENT模式,用GROUP BY编写指定SQL查询

解决方案

首先,我们需要关联员工表与部门表,同时按部门分组来统计符合条件的数据。以下是满足需求的SQL语句:

SELECT 
    d.dname AS 部门名称,
    COUNT(CASE WHEN e.age > 25 THEN 1 END) AS 超25岁员工人数
FROM 
    EMPLOYEE e
JOIN 
    DEPARTMENT d ON e.dno = d.dnum
GROUP BY 
    d.dnum, d.dname
HAVING 
    COUNT(*) > 2;

语句说明:

  • 表关联:通过外键dno与主键dnum关联两张表,确保能获取到部门的名称信息。
  • 分组规则:按部门编号dnum和名称dname分组,保证每个部门作为独立统计单元(dnum是主键,对应唯一dname,同时分组两者是为了在SELECT中直接引用部门名称)。
  • 分组过滤:COUNT(*) > 2用来筛选总员工数超过2人的部门,COUNT(*)统计的是每个分组下的所有员工数量。
  • 超龄员工统计:COUNT(CASE WHEN e.age > 25 THEN 1 END)会对每个员工判断年龄是否达标,符合条件的返回1,否则返回NULL;COUNT函数会忽略NULL值,最终得到该部门中年龄超25岁的员工总数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 18:55:29