使用上面的代码我想从一个部分找到最大的员工但是我们无法找到如何仅使用特定的名称。
我的意思是,我希望结果只有“开发”这个名称,而右边的数字是223.
我不想要其他部门或号码。
我尝试了很多方法,但我无法解决。
如果图片显示不够好,我会给你下面写的代码:
select dept_name, count(emp_no)
from departments
join current_dept_emp using(dept_no)
group by dept_no;
答案 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;