SELECT列表中的嵌套聚合函数

vel*_*ije 0 sql t-sql sql-server select

我试过以下查询:

SELECT 
    MAX(SUM(e.Empid))
FROM HR.Employees
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么不允许这样做?

And*_*mar 6

每个聚合都适用于一个组.您只能为每个查询定义一个组.因此,多个聚合需要子查询.例如,要查找最大部门的员工数量:

SELECT  MAX(EmpCount)
FROM    (
        SELECT  COUNT(*) as EmpCount
        FROM    HR.Employees
        GROUP BY
                e.Department
        ) as SubQueryAlias
Run Code Online (Sandbox Code Playgroud)