N 高薪17 Mar 2025 | 6 分钟阅读 在表中查找 N-th 最高薪资(2nd、3rd 或 nth 最高薪资)是面试中最重要且最常见的问题。 在这里,我们将向您展示编写 SQL 查询以在表中查找 nth 最高薪资的最佳且最简单的方法。 为了说明这一点,我们使用名为 Emp 的表,其中包含员工的详细信息,如 EID、ENAME 和 SALARY。Emp 表中的数据如下所示: 表名:Emp
用于计算名为 Emp 的数据库表中第二高薪资的 SQL 查询查询:1 输出 MIN(SALARY) ----------- 37000 Emp 表的结构和数据![]() 输出屏幕![]() 让我们来理解这个查询是如何工作的。用于计算名为 Emp 的数据库表中第二高薪资的 SQL 查询查询:2 输出 ENAME SALARY Rank ------------ ---------- ---------- ravi 37000 2 ![]() 让我们来理解这个查询是如何工作的。用于计算名为 Emp 的数据库表中第二高薪资的 SQL 查询假设任务是从上面的表中计算员工的 N-th 最高薪资。过程如下:
查询号:3 上述 SQL 查询将找出薪资为 nth 最高薪资的员工的详细信息。 让我们详细了解上述 SQL 查询的工作原理。
服务器的处理方式是,它从最内部的查询开始,查询:“select distinct TOP 5 salary from emp order by salary desc” 将生成以下结果
从上面的结果可以验证,所需的**第五**高薪资是 28000。
查询的工作原理由于这些是嵌套查询,因此此查询涉及内部查询的使用。内部查询有两种版本:**关联查询**和**非关联查询**。非关联查询是指内部查询可以独立于外部查询运行的查询,而关联查询是指内部查询与外部查询协同运行的查询。我们用来计算 nth 最高薪资的查询就是关联查询的一个例子。 SQL 查询的性能分析从上面我们了解到,内部查询在每次执行时,都会处理外部查询的单行,这最终会带来大量的性能开销,尤其是在行数非常多的情况下。 为避免这种情况,建议使用特定数据库的关键字来更快地获得结果。 下一个主题12 Codd?s 规则 |
我们请求您订阅我们的新闻通讯以获取最新更新。