SQL实现LeetCode(181.员工挣得比经理多)

 更新时间:2021年08月04日 14:09:51   作者:Grandyang  
这篇文章主要介绍了SQL实现LeetCode(181.员工挣得比经理多),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

[LeetCode] 181.Employees Earning More Than Their Managers 员工挣得比经理多

The Employee table holds all employees including their managers. Every employee has an Id, and there is also a column for the manager Id.

+----+-------+--------+-----------+
| Id | Name  | Salary | ManagerId |
+----+-------+--------+-----------+
| 1  | Joe   | 70000  | 3         |
| 2  | Henry | 80000  | 4         |
| 3  | Sam   | 60000  | NULL      |
| 4  | Max   | 90000  | NULL      |
+----+-------+--------+-----------+

Given the Employee table, write a SQL query that finds out employees who earn more than their managers. For the above table, Joe is the only employee who earns more than his manager.

+----------+
| Employee |
+----------+
| Joe      |
+----------+

这道题给我们了一个Employee表,里面有员工的薪水信息和其经理的信息,经理也属于员工,其经理Id为空,让我们找出薪水比其经理高的员工,那么就是一个很简单的比较问题了,我们可以生成两个实例对象进行内交通过ManagerId和Id,然后限制条件是一个Salary大于另一个即可:

解法一:

SELECT e1.Name FROM Employee e1
JOIN Employee e2 ON e1.ManagerId = e2.Id
WHERE e1.Salary > e2.Salary;

我们也可以不用Join,直接把条件都写到where里也行:

解法二:

SELECT e1.Name FROM Employee e1, Employee e2
WHERE e1.ManagerId = e2.Id AND e1.Salary > e2.Salary;

参考资料:

https://leetcode.com/discuss/88189/two-straightforward-way-using-where-and-join

到此这篇关于SQL实现LeetCode(181.员工挣得比经理多)的文章就介绍到这了,更多相关SQL实现员工挣得比经理多内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL事务处理与应用简析

    MySQL事务处理与应用简析

    事务处理在各种管理系统中都有着广泛的应用,比如人员管理系统,很多同步数据库操作大都需要用到事务处理。这篇文章主要介绍了MySQL事务处理,需要的朋友可以参考下
    2014-06-06
  • MySQL深度分页问题的三种解决方法

    MySQL深度分页问题的三种解决方法

    在 MySQL 中解决深度分页问题的核心思路是减少扫描的数据量,尤其是避免通过 LIMIT offset, size 导致的大范围数据扫描,以下是三种优化方法及其原理、适用场景和注意事项,需要的朋友可以参考下
    2025-02-02
  • centos 6.4下使用rpm离线安装mysql

    centos 6.4下使用rpm离线安装mysql

    这篇文章主要为大家详细介绍了centos 6.4下使用rpm离线安装mysql的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • MySQL主从复制原理解析与最佳实践过程

    MySQL主从复制原理解析与最佳实践过程

    这篇文章主要介绍了MySQL主从复制原理解析与最佳实践过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 总结MySQL修改最大连接数的两个方式

    总结MySQL修改最大连接数的两个方式

    最大连接数是可以通过mysql进行修改的,mysql数据库修改最大连接数常用有两种方法,今天我们分析一下这两种方法之间的特点和区别,以便我们能更好的去维护mysql。下面我们来看一下mysql修改最大连接数的方法,希望文章能够帮助到各位朋友。
    2016-08-08
  • mysql 5.7安装 MySQL 服务无法启动但是服务没有报告任何错误

    mysql 5.7安装 MySQL 服务无法启动但是服务没有报告任何错误

    这篇文章主要介绍了mysql 5.7安装 MySQL 服务无法启动但是服务没有报告任何错误的相关资料,需要的朋友可以参考下
    2017-04-04
  • MySQL中SQL连接操作左连接查询(LEFT JOIN)示例详解

    MySQL中SQL连接操作左连接查询(LEFT JOIN)示例详解

    这篇文章主要给大家介绍了关于MySQL中SQL连接操作左连接查询(LEFT JOIN)的相关资料,左连接(LEFT JOIN)是SQL中用于连接两个或多个表的一种操作,它返回左表的所有行,并根据连接条件从右表中匹配行,需要的朋友可以参考下
    2024-12-12
  • linux下mysql忘记密码的解决方法

    linux下mysql忘记密码的解决方法

    这篇文章主要为大家详细介绍了linux下mysql忘记密码的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • MySQL 案例分析讲解外连接语法

    MySQL 案例分析讲解外连接语法

    数据库的一个难题是无法将SQL语句的执行结果转换为想要的格式。本节,我们将通过学习格式转换中具有代表性的行列转换和嵌套式侧栏的生成方法,深入理解一下其中有重要作用的外连接
    2022-04-04
  • Mysql给普通分页查询结果加序号实操

    Mysql给普通分页查询结果加序号实操

    这篇文章主要介绍了Mysql给普通分页查询结果加序号实操,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09

最新评论