编写一个 SQL 查询,找出每个部门工资最高的员工。-CSDN博客

欧洲杯 04-09 阅读:25 评论:0
编写一个 SQL 查询,找出每个部门工资最高的员工。-CSDN博客

  我们可以使用嵌套查询和窗口函数来编写一个 SQL 查询,找出每个部门获得前三高工资的所有员工。

  首先,我们可以使用窗口函数将每个部门的员工按照工资进行排序,并为每个员工分配一个排名。然后,我们可以使用嵌套查询,筛选出排名小于等于3的员工。

  下面是一个示例的 SQL 查询:

  ```

  SELECT department_id, employee_id, employee_name, salary

  FROM (

  SELECT department_id, employee_id, employee_name, salary,

  ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank

  FROM employees

  ) AS ranked_employees

  WHERE rank <= 3;

  ```

  在上述查询中,我们先使用窗口函数 `ROW_NUMBER()` 对每个部门的员工按照工资进行排序,并为每个员工分配一个排名。`PARTITION BY department_id` 表示按照部门进行分区,`ORDER BY salary DESC` 表示按照工资降序排序。然后,我们将这个结果作为子查询,并通过 `WHERE` 条件筛选出排名小于等于3的员工。

  执行上述查询后,将返回每个部门获得前三高工资的所有员工的部门ID、员工ID、员工姓名和工资。

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

分享:

扫一扫在手机阅读、分享本文

网友评论

相关推荐

文章排行

标签列表