我有一个表,其中包含员工列表,其中一些员工是同一个表中其他人的经理。我尝试在线搜索,我尝试使用连接,count(),子选择等我知道我应该使用这些但我不知道如何。
我希望能够列出所有拥有5名或更多员工的经理,所以基本上
select first_name, last_name
where manager_id has 5 or more occurrences.
答案 0 :(得分:1)
您可以使用IN
子句查找在EMPLOYEE_ID
列中出现次数超过4次的MANAGER_ID
的经理。我假设这个表在这里被称为EMPLOYEES
。 MANAGER_ID
列存储了作为经理的员工EMPLOYEE_ID
。
例如:
-- List all manager which have 5 or more employees
SELECT
first_name,
last_name
FROM EMPLOYEES WHERE
EMPLOYEE_ID IN
(
SELECT e.MANAGER_ID
FROM EMPLOYEES e
GROUP BY e.MANAGER_ID
HAVING COUNT(e.EMPLOYEE_ID) > 4
)
SELECT
子句中的IN
使用GROUP BY
按EMPLOYEES
对MANAGER_ID
表中的记录进行分组。 HAVING
子句将限制MANAGER_ID
返回到员工人数超过4的记录。