<分区>
我有一个名为department
的表,其中包含以下数据
DNO DNAME SALARY
20 EE 30000
10 DoC 50000
30 ITS 20000
我想在不使用GROUP
函数或top-n 分析或NOT EXISTS
命令的情况下选择具有最高和最低工资的员工。任何帮助将不胜感激。谢谢
<分区>
我有一个名为department
的表,其中包含以下数据
DNO DNAME SALARY
20 EE 30000
10 DoC 50000
30 ITS 20000
我想在不使用GROUP
函数或top-n 分析或NOT EXISTS
命令的情况下选择具有最高和最低工资的员工。任何帮助将不胜感激。谢谢
最佳答案
对于最大。工资:
SELECT *
FROM department d1
WHERE salary > ALL (SELECT d2.salary
FROM department d2
WHERE d2.dno <> d1.dno)
对于最低工资:
SELECT *
FROM department d1
WHERE salary < ALL (SELECT d2.salary
FROM department d2
WHERE d2.dno <> d1.dno)
两种解决方案都假设工资不能为空
关于mysql - 在 SQL 中不使用聚合函数的最高/最低值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9554347/