MySQL:我检索了一份按部门排序的最高工资列表。如何找到这些最高工资的最低值?

MySQL:我检索了一份按部门排序的最高工资列表。如何找到这些最高工资的最低值?,mysql,max,minimum,Mysql,Max,Minimum,我有一个大学数据库,从讲师表中,最初我被告知找到每个系教授的最高工资,并将其重命名为“最高工资”。讲师表有四列,“ID”、“姓名”、“部门名称”和“工资”。我通过以下查询找到了每个部门的最高工资: SELECT dept_name, MAX(salary) AS max_salary FROM instructor GROUP BY dept_name; 然后,我被要求从上面的查询中找出工资组的最低值。我相信我已经接近这个问题了: SELECT min(salary) FROM

我有一个大学数据库,从讲师表中,最初我被告知找到每个系教授的最高工资,并将其重命名为“最高工资”。讲师表有四列,“ID”、“姓名”、“部门名称”和“工资”。我通过以下查询找到了每个部门的最高工资:

SELECT dept_name, MAX(salary) AS max_salary
FROM instructor
GROUP BY dept_name;
然后,我被要求从上面的查询中找出工资组的最低值。我相信我已经接近这个问题了:

SELECT min(salary)
    FROM 
        (SELECT dept_name, MAX(salary)
        FROM instructor
        GROUP BY dept_name) as lowest; 
但是,这会给我一条错误消息,说明“字段列表”中的“未知列”“薪资”

我似乎在教科书或网上找不到关于如何找到一组最大值中的最小值的任何答案,而我只得到了一个神秘的提示“你必须使用嵌套查询”,这没有多大帮助。
还有人听说过如何做这样的事情吗?

你真的很接近了

SELECT min(max_sal) as lowest
FROM 
(
   SELECT dept_name, MAX(salary) as max_sal
   FROM instructor 
   GROUP BY dept_name
) as tmp
您需要为计算列指定别名。我使用了
max\u sal
。然后您可以在外部查询中引用它

另一种可能是对数据进行排序,只获取第一个结果:

SELECT dept_name, MAX(salary) as max_sal
FROM instructor 
GROUP BY dept_nam
ORDER BY MAX(salary) ASC
LIMIT 1

给MAX(salary)一个别名。例如MAX(salary)作为MAX_salary,然后选择min(MAX_salary)。哇,非常感谢。我知道我必须有一个别名,但我似乎不知道该放在哪里或制作什么。你不会相信我花了多长时间才弄明白这一点。