首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用不带分组的MAX()

使用不带分组的MAX()
EN

Stack Overflow用户
提问于 2019-05-22 14:14:51
回答 3查看 1.2K关注 0票数 1

我正在使用Oracle-Apex,我有一个包含姓名和薪水的表。我想用MAX(薪水)得到薪水最高的名字。

所以查询是这样的:

代码语言:javascript
复制
SELECT NAME FROM EMPLOYEE
GROUP BY NAME
HAVING MAX(SALARY) = SALARY;

这不起作用,出现错误ORA-00979: not a GROUP BY expression。所以我使用下面的代码来停止这个错误:

代码语言:javascript
复制
SELECT NAME FROM EMPLOYEE
GROUP BY NAME, SALARY
HAVING MAX(SALARY) = SALARY;

它将每个不同的薪水分组到一行中,并返回每行中的最大工资,因为每个薪水都是不同的,所以它返回每一行。

如何在不修改表的情况下将所有内容分组到一个大组中?我的意思是我希望这能行得通:

代码语言:javascript
复制
SELECT NAME FROM EMPLOYEE
WHERE MAX(SALARY) = SALARY;

而是拥有。真的很简单,但是我找不到路。

EN

回答 3

Stack Overflow用户

发布于 2019-05-22 14:22:45

使用子查询

代码语言:javascript
复制
SELECT NAME FROM EMPLOYEE
where salary = (select max( salary) from EMPLOYEE)
票数 3
EN

Stack Overflow用户

发布于 2019-05-22 14:23:04

您需要一个WHERE子句,并将工资与表的最高工资进行比较:

代码语言:javascript
复制
SELECT NAME FROM EMPLOYEE
WHERE SALARY = (SELECT MAX(SALARY) FROM EMPLOYEE);
票数 2
EN

Stack Overflow用户

发布于 2019-05-22 14:25:55

您可以使用下面的嵌套查询来获取最高薪资的人员的姓名。

代码语言:javascript
复制
select NAME
from   EMPLOYEE
where  SALARY= ( select max(SALARY)
                 from   EMPLOYEE )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56250379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档