gpt4 book ai didi

sql - 如何编写 SQL 查询以在 Oracle 中查找最高和最低工资以及员工姓名

转载 作者:行者123 更新时间:2023-12-01 21:59:59 25 4
gpt4 key购买 nike

我有一张员工表。请在下面找到表结构和数据。

enter image description here

我想找到最高薪水和最低薪水以及员工姓名。

预期输出将是:

enter image description here

为了找出最高工资和员工姓名,我编写了这个查询:

SELECT name,salary FROM  employee where salary
= (select max(salary) from employee);

为了找出最低工资和员工姓名,我编写了这个查询:

SELECT name,salary FROM  employee where salary
= (select min(salary) from employee);

但我无法合并这两个查询。

有人可以指导我构建将返回最高薪水和最低薪水以及员工姓名的 SQL 查询吗?

最佳答案

这是一种方法,使用 RANK。这个答案使 CTE 一次通过,以找到员工表中排名最低和最高的薪水。然后,它仅进行一次子查询以检索完整的匹配记录。

WITH cte AS (
SELECT NAME, SALARY,
RANK() OVER (ORDER BY SALARY) rnk_min,
RANK() OVER (ORDER BY SALARY DESC) rnk_max
FROM employee
)

SELECT NAME, SALARY
FROM cte
WHERE rnk_min = 1 OR rnk_max = 1
ORDER BY SALARY;

enter image description here

Demo

关于sql - 如何编写 SQL 查询以在 Oracle 中查找最高和最低工资以及员工姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53923104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com