sql - 使用 MAX() 而不分组

标签 sql oracle-apex

我正在使用 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/

相关文章:

mysql - 在 MySql 中执行查询时与 only_full_group_by 相关的错误

python - 我怎样才能解决以下结果?

sql - "Order by "如何设置为数字排序

oracle-apex - APEX表格表格自动刷新

SQL 我不明白我的触发器出了什么问题

sql - 按行和日期范围过滤 SQL 查询

sql - 如何计算 presto 中两个文本之间的余弦相似度?

oracle - 在 Oracle DB 中将字符串列表转换为数字

java - 是否有不同的方法从 Oracle Application Express 调用 Java

oracle - ORA-01034 : ORACLE not available error when configuring Oracle ApEx