我正在使用 Oracle-Apex 我有一张包含姓名和薪水的表格。我想使用 MAX(salary) 获得薪水最高的名字。
所以查询是这样的:
SELECT NAME FROM EMPLOYEE
GROUP BY NAME
HAVING MAX(SALARY) = SALARY;
这不起作用,出现错误 ORA-00979:不是 GROUP BY 表达式。所以我用它来阻止那个错误:
SELECT NAME FROM EMPLOYEE
GROUP BY NAME, SALARY
HAVING MAX(SALARY) = SALARY;
并且它将每个不同的薪水分组在一行中并返回每行中的最高薪水,因为每个薪水都不同,所以它返回每一行。
如何在不修改表格的情况下将所有内容分组到一个大组中?我的意思是我希望它能工作:
SELECT NAME FROM EMPLOYEE
WHERE MAX(SALARY) = SALARY;
但是有了。真的很简单,但是我找不到方法。
最佳答案
使用子查询
SELECT NAME FROM EMPLOYEE
where salary = (select max( salary) from EMPLOYEE)
关于sql - 使用 MAX() 而不分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56250379/