【SQL思考记录】力扣181. 超过经理收入的员工
原题链接
SQL 语句解释
此SQL查询旨在找出在公司中薪水高于其经理的员工。具体的查询语句和逻辑如下:
SELECT
a.Name AS 'Employee'
FROM
Employee AS a,
Employee AS b
WHERE
a.ManagerId = b.Id
AND a.Salary > b.Salary;
组件解释:
-
SELECT a.Name AS 'Employee'
:- 这部分选择了
Employee
表中的Name
字段,并将其结果列命名为Employee
。这样做使得返回的数据更清晰易懂。
- 这部分选择了
-
FROM Employee AS a, Employee AS b
:- 这里将同一个
Employee
表引用了两次,分别赋予别名a
和b
。这种做法常用于比较同一表中的不同行数据。在这个查询中,一个Employee
表的实例(a
)代表员工,另一个实例(b
)代表经理。
- 这里将同一个
-
WHERE a.ManagerId = b.Id AND a.Salary > b.Salary
:WHERE
子句是查询的核心,用于过滤出符合条件的行。此处有两个条件:a.ManagerId = b.Id
:这个条件确保了从a
(代表员工)中选出的行与b
(代表经理)中的行在经理ID上匹配。a.Salary > b.Salary
:这个条件筛选出那些薪水高于其经理的员工。
结果解释:
- 输出:
- 查询的结果将列出那些薪水高于其直接上级(经理)的员工的名字。
- 如果没有员工的薪水高于他们的经理,那么查询结果将为空。