我有一个大学数据库,从讲师表开始,我被告知找到每个部门的最高教授工资,并将其重命名为'max_salary'。讲师表有四列,'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;
但是,这给了我一条错误消息,指出“字段列表”中的“未知列'工资'。
我似乎无法在教科书或网上找到任何关于如何找到一组最大值的最低值的答案,而且我只给出了一个神秘的提示“你必须使用嵌套查询”,这对我没什么帮助。 有没有人听说过如何做这样的事情?
你真的很亲密
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