[英]find department with at least 2 employees
I need to make sql
question which will show all departments with at least 2 people in it. 我需要使
sql
问题,它将显示所有部门至少有2个人。
SELECT department.name
FROM department
INNER JOIN employee
ON department.id = employee.department_id
GROUP BY employee.id
HAVING COUNT(employee.id) >= 2;
It's not showing me anything with this query 此查询没有显示任何内容
I think you using GROUP BY
on wrong column. 我认为您在错误的列上使用了
GROUP BY
。
If you want to count employee in each department, then you need to GROUP BY department.id
. 如果要计算每个部门的员工,则需要
GROUP BY department.id
。
SELECT department.id, department.name, COUNT(employee.id) AS total_employee
FROM department
INNER JOIN employee
ON department.id = employee.department_id
GROUP BY department.id, department.name
HAVING COUNT(employee.id) >= 2;
Try this: 尝试这个:
SELECT d.name
FROM department d
WHERE
(SELECT COUNT(*) FROM employee e
WHERE d.id = e.department_id) >= 2
In this way if you want to change your limit (instead of 2, another value) your query will work. 这样,如果您想更改限制(而不是2,另一个值),查询将起作用。
If you use INNER JOIN
if you want, in the future all departments with no employees you can't use it. 如果需要,可以使用
INNER JOIN
,将来所有没有员工的部门都将无法使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.