mysql--返回第N高的薪水(不存在返回null)

Posted vegetabledd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql--返回第N高的薪水(不存在返回null)相关的知识,希望对你有一定的参考价值。

技术图片

 

 

思路分析:( 结合IF(a,b,c) )

  1、首先我们需要判断如果我们对所有的工资进行去重 再 count 计数,观察工资的阶段的总和是否大于N(这里的N指的是我们需要查询的第N高的薪水),如果去重之后的工资的阶段的总和都小于N,那就说明我们要查询的第N高的工资肯定为null。

  技术图片------>>>>这部分相当于是IF语句中的a部分

 

  2、如果上述的a条件成立的话,那么我们就走第二步,要从表中筛选出我们需要的第N高的工资。子查询中的语义:首先对表中的工资去重查询,按照工资降序,因为我们要第N高的工资,所以我们干脆直接调用limit去筛选出倒序结果中的前N个数据,该数据中最小的数据也就是我们需要的结果。(工资倒序的话,越下面的数据越大)

技术图片

 

 

 

具体sql语句的实现:

  技术图片

 

 

 

MySQL中的IF函数知识点补充:

  IF(a,b,c) 首先对a判断是否成立,如果a结果为true,那么输出的结果就是b,如果a的结果是false,输出的结果是c

 

以上是关于mysql--返回第N高的薪水(不存在返回null)的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode] Nth Highest Salary 第N高薪水

176. 第二高的薪水

LeetCode176——第二高的薪水

LeetCode - 176. 第二高的薪水

leecode的sql练习之第二高的薪水

力扣——第N高的薪水(数据库的题