使用子选择来计算一个表中的结果

时间:2014-10-15 18:35:10

标签: mysql sql

我有一个表,其中包含员工列表,其中一些员工是同一个表中其他人的经理。我尝试在线搜索,我尝试使用连接,count(),子选择等我知道我应该使用这些但我不知道如何。My Table

我希望能够列出所有拥有5名或更多员工的经理,所以基本上

select first_name, last_name
where manager_id has 5 or more occurrences.

1 个答案:

答案 0 :(得分:1)

您可以使用IN子句查找在EMPLOYEE_ID列中出现次数超过4次的MANAGER_ID的经理。我假设这个表在这里被称为EMPLOYEESMANAGER_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 BYEMPLOYEESMANAGER_ID表中的记录进行分组。 HAVING子句将限制MANAGER_ID返回到员工人数超过4的记录。