MySQL: 我检索了按部门排序的最高薪水列表。如何找到这些最高工资中的最低者?

MySQL: I retrieved a list of maximum salaries ordered by department. How to find the minimum of these maximum salaries?

我有一个大学数据库,来自讲师 table,最初我被告知要找到每个系的最高教授薪水并将其重命名为 'max_salary'。讲师 table 有四列,'ID'、'name'、'dept_name' 和 'salary'。我使用以下查询找到了每个部门的最高工资:

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; 

但是,这给了我一条错误消息,指出“'field list' 中的未知列 'salary'”。

我似乎无法在教科书或网上找到任何关于如何找到一组最大值中的最小值的答案,而且我只得到了神秘的提示 "You have to use a nested query," 这并没有太大帮助.
还有其他人听说过如何做这样的事情吗?

你们真的很亲密

SELECT min(max_sal) as lowest
FROM 
(
   SELECT dept_name, MAX(salary) as max_sal
   FROM instructor 
   GROUP BY dept_name
) as tmp

您需要为计算列指定一个别名。我用了max_sal。然后你可以在外部查询中引用它。

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

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