SQL:至少有 10 名员工的部门名称
Posted
技术标签:
【中文标题】SQL:至少有 10 名员工的部门名称【英文标题】:SQL: department name with minimum of 10 employees 【发布时间】:2017-10-23 03:42:55 【问题描述】:我有一张员工表和一个部门名称表。 结构是
员工 - 员工ID - 员工姓名 - 部门ID
部门 - 部门 ID - 部门名称
我想显示一个包含 10 名以上员工工作的部门名称的表格。
我试过没有结果的查询是:
select count(*) as count,d.department_name
from employees e
inner join departments d on e.department_id = d.department_id
where count(*) > 5
group by d.department_name
请指正
【问题讨论】:
您想要“最少 10 名员工”还是“超过 10 名员工”? 【参考方案1】:在 group by 之后有一个特定的子句,HAVING
子句,允许过滤聚合值。
select count(*) as count,d.department_name
from employees e
inner join departments d on e.department_id = d.department_id
group by d.department_name
HAVING count(*) > 10
注意:where 子句应继续用于不依赖于聚合的条件。例如如果您只是想要“销售相关”部门
select count(*) as count,d.department_name
from employees e
inner join departments d on e.department_id = d.department_id
WHERE d.department_name like 'sales%'
group by d.department_name
HAVING count(*) > 10
【讨论】:
有一个约定,即施加 where 条件的表首先出现在选择中。我想这不是规则,只是一种传统。 @Strawberry 我当时正在使用手机,要整理到那种程度实在是太难了。以上是关于SQL:至少有 10 名员工的部门名称的主要内容,如果未能解决你的问题,请参考以下文章