You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL中找出各部门平均薪资中的最小值?

解决各部门平均薪资最小值的查询问题

你的SQL语句报错有两个原因:

  1. 语法错误:groupby需要写成group by(中间有空格)
  2. 逻辑错误:SQL不允许在同一个SELECT层级直接嵌套聚合函数(比如min(avg(salary)))——avg(salary)是分组后的聚合结果,外层的min需要基于这个分组结果集来计算,不能直接嵌套调用。

下面是两种可行的解决方案:

方法一:使用子查询

先通过子查询计算每个部门的平均薪资,再在外层查询中取这些平均值的最小值:

SELECT MIN(dept_avg)
FROM (
    SELECT AVG(salary) AS dept_avg
    FROM Department
    GROUP BY dno
) AS dept_salaries;

方法二:使用CTE(公共表表达式)

CTE的写法可读性更强,适合处理复杂查询逻辑:

WITH dept_salaries AS (
    SELECT AVG(salary) AS dept_avg
    FROM Department
    GROUP BY dno
)
SELECT MIN(dept_avg) FROM dept_salaries;

逻辑说明

两种方法的核心逻辑一致:

  • 先按部门(dno)分组,计算每个部门的平均薪资,得到一个包含所有部门平均薪资的临时数据集
  • 再对这个临时数据集使用MIN()函数,即可得到所有部门平均薪资中的最小值

内容的提问来源于stack exchange,提问作者Sheldon vibes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 17:40:57