暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何使用 Oracle SQL 查询找出过去一年内每个部门的平均薪资最高的记录?

原创 小伙 2025-06-21
134
  1. 首先,你需要一个包含员工薪资和部门的表(例如 employees 表,其中包含 salary 和 department_id 字段)。

  2. 使用 GROUP BY 和 HAVING 子句来找出每个部门的平均薪资最高的记录。

  3. 使用子查询或者窗口函数(如 ROW_NUMBER() 或 RANK())来确保只选择每个部门薪资最高的记录。

示例 SQL














SELECT department_id, AVG(salary) AS avg_salary

FROM employees

WHERE department_id IN (

SELECT department_id

FROM (

SELECT department_id, salary, RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) as rank

FROM employees

WHERE hire_date >= ADD_MONTHS(SYSDATE, -12) -- 过去一年内的数据

)

WHERE rank = 1

)

GROUP BY department_id;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论