春招打卡d17n31-leetcode刷题181超过经理收入的员工

91 阅读1分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

leetcode刷题181超过经理收入的员工

前文

本文为leetcode数据库类型题目,题目序号181,主要考察对于数据库查询知识的应用,题目链接https://leetcode-cn.com/problems/employees-earning-more-than-their-managers/

题目信息

表:Employee 

+-------------+---------+ | Column Name | Type | +-------------+---------+ | id | int | | name | varchar | | salary | int | | managerId | int | +-------------+---------+ Id是该表的主键。 该表的每一行都表示雇员的ID、姓名、工资和经理的ID。  

编写一个SQL查询来查找收入比经理高的员工。

以 任意顺序 返回结果表。

查询结果格式如下所示。

解题思路

根据题目信息,本题目主要目标是查询所有工资比经理高的员工的信息。那么很容易想到,首先需要在查询中确定该员工的经理是否存在已经经理是谁。只有当员工的经理存在,且经理的工资小于员工的工资时,返回该员工信息。而对于条件的查询,很容易能想到where语句,当然也可以想到通过join表进行操作。本解法中采用where语句进行操作。语句中的主要内容为判断员工的经理同时经理的工资小于员工的工资即可,也就是where语句中也需要包含一次完整的sql查询。按此方式即可解决该题目,得到答案。主要考察对于查询条件的应用。

解题答案

select Name as Employee from Employee a where a.Salary > (select b.Salary from Employee b where b.Id = a.managerId)

后记

  • 千古兴亡多少事?悠悠。不尽长江滚滚流。