sql - 平均值的最大值

标签 sql oracle oracle10g ora-00937

我应该得到每个部门的平均工资,只显示平均工资最高的部门。我想出了这个查询,但它不起作用。有人有一些想法吗?

SELECT department, max(avg(wage))
FROM employees
GROUP BY department;

我收到此错误:
第 1 行的错误:
ORA-00937: 不是单组组函数

最佳答案

没有 CTE,您可以执行以下操作:

Select Z.Department, Z.AvgWage
From  (
        Select Department, Avg(Wage) AvgWage
        From Employees
        Group By Department
        ) As Z
Where AvgWage = (
                Select Max(Z1.AvgWage)
                From    (
                        Select Department, Avg(Wage) AvgWage
                        From Employees
                        Group By Department
                        )  Z1
                )

使用 CTE,您可以:
With AvgWages As
    (
    Select Department
        , Avg(Wage) AvgWage
        , Rank() Over( Order By Avg(Wage) Desc ) WageRank
    From Employees
    Group By Department
    )
Select Department, AvgWage, WageRank
From AvgWages
Where WageRank = 1

关于sql - 平均值的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2439627/

相关文章:

sql - 将 LIMIT 添加到 ARRAY_TO_JSON 或 ARRAY_AGG

sql - SQL*Plus 中的清除屏幕

sql - Oracle SQL select语句哪个 "sleeps"?普通 SQL?

database - 复合主键索引

java - 使用准备好的语句在 oracle 中插入日期

sql - 来自 PostgreSQL jsonb 数组的值查询

MySQL_Trigger_Problem_Uknown_Col

java - 将 java 类型 string[] 映射到 oracle 类型

plsql - 关于程序,哪两种说法是正确的?

MySQL SELECT 语法不重复其他值