首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在高薪部门工作的员工姓名

在高薪部门工作的员工姓名
EN

Stack Overflow用户
提问于 2019-12-18 13:05:00
回答 3查看 82关注 0票数 0

我是SQL的新手,我正在尝试获得在该员工获得最高工资的部门工作的员工的姓名。

我成功地返回了工资最高的员工,但现在我想与他们的Dno和员工行的其余行执行联合,我该如何做呢?

代码语言:javascript
复制
SELECT DISTINCT Fname, Lname, salary
FROM employee 
WHERE Dno = (SELECT Dno FROM employee WHERE MAX(salary));

/*names of employees working in the department where the employee receives the high salary 
EN

回答 3

Stack Overflow用户

发布于 2019-12-18 13:09:32

您已经接近了,但您应该检查WHERE子句中的薪水:

代码语言:javascript
复制
SELECT Fname, Lname, salary
FROM employee 
WHERE salary = (SELECT MAX(salary) FROM employee);

我们也可以在这里使用RANKROW_NUMBER,例如

代码语言:javascript
复制
WITH cte AS (
    SELECT Fname, Lname, salary, RANK() OVER (ORDER BY salary DESC) rnk
    FROM employee
)

SELECT Fname, Lname, salary
FROM cte
WHERE rnk = 1;
票数 3
EN

Stack Overflow用户

发布于 2019-12-18 13:10:08

如果您想要一个与具有最高工资的部门处于同一部门的所有员工的列表,则不需要执行额外的联合,因为您只需在工资上使用ORDER BY,然后在WHERE子句中选择该最高工资级别的部门,如下所示:

代码语言:javascript
复制
SELECT  Fname,
        Lname,
        salary
FROM    employee
WHERE   Dno = (SELECT TOP 1 Dno FROM employee ORDER BY salary DESC)
票数 0
EN

Stack Overflow用户

发布于 2019-12-18 13:13:36

您可以像这样嵌套select:

代码语言:javascript
复制
Select * from employee where deoptno in 
   ( Select deptno from empoloyee where salary = (Select max(salary) from employee))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59385797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档