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