我正在使用Oracle-Apex,我有一个包含姓名和薪水的表。我想用MAX(薪水)得到薪水最高的名字。
所以查询是这样的:
SELECT NAME FROM EMPLOYEE
GROUP BY NAME
HAVING MAX(SALARY) = SALARY;这不起作用,出现错误ORA-00979: not a GROUP BY expression。所以我使用下面的代码来停止这个错误:
SELECT NAME FROM EMPLOYEE
GROUP BY NAME, SALARY
HAVING MAX(SALARY) = SALARY;它将每个不同的薪水分组到一行中,并返回每行中的最大工资,因为每个薪水都是不同的,所以它返回每一行。
如何在不修改表的情况下将所有内容分组到一个大组中?我的意思是我希望这能行得通:
SELECT NAME FROM EMPLOYEE
WHERE MAX(SALARY) = SALARY;而是拥有。真的很简单,但是我找不到路。
发布于 2019-05-22 14:22:45
使用子查询
SELECT NAME FROM EMPLOYEE
where salary = (select max( salary) from EMPLOYEE)发布于 2019-05-22 14:23:04
您需要一个WHERE子句,并将工资与表的最高工资进行比较:
SELECT NAME FROM EMPLOYEE
WHERE SALARY = (SELECT MAX(SALARY) FROM EMPLOYEE);发布于 2019-05-22 14:25:55
您可以使用下面的嵌套查询来获取最高薪资的人员的姓名。
select NAME
from EMPLOYEE
where SALARY= ( select max(SALARY)
from EMPLOYEE )https://stackoverflow.com/questions/56250379
复制相似问题