如何在链接表中查找最大计数

时间:2016-12-20 17:14:52

标签: mysql sql

enter image description here

使用上面的代码我想从一个部分找到最大的员工但是我们无法找到如何仅使用特定的名称。

我的意思是,我希望结果只有“开发”这个名称,而右边的数字是223.

我不想要其他部门或号码。

我尝试了很多方法,但我无法解决。

如果图片显示不够好,我会给你下面写的代码:

select dept_name, count(emp_no)
from departments 
join current_dept_emp using(dept_no)
group by dept_no;

2 个答案:

答案 0 :(得分:0)

试试这个:

SET @depName = 'Development';

SELECT 
    dept_name, COUNT(emp_no)
FROM
    departments
        JOIN
    current_dept_emp USING (dept_no)
WHERE
    dept_name LIKE @depName
GROUP BY dept_no;

或者通过创建存储过程来获取depName作为输入:

DROP PROCEDURE IF EXISTS get_dept_summary;
DELIMITER //
CREATE PROCEDURE get_dept_summary(IN depName NVARCHAR(128))
BEGIN
    SELECT 
        dept_name, COUNT(emp_no)
    FROM
        departments
            JOIN
        current_dept_emp USING (dept_no)
    WHERE
        dept_name LIKE depName
    GROUP BY dept_no;

END//
DELIMITER ;

然后你可以这样称呼它:

Set @depName = 'Development';
CALL get_dept_summary(@depName);

如果您不知道部门的名称,只需根据您的要求更改where子句。

答案 1 :(得分:0)

尝试类似:

SELECT
    dept_name,
    count(emp_no) AS empcount
FROM
    departments
JOIN current_dept_emp USING (dept_no)
GROUP BY
    dept_no
ORDER BY
    empcount DESC
LIMIT 1;
相关问题