在没有限制的情况下在mysql中找到第三高的薪水

bla*_*ack 0 mysql

我一直试图在不使用限制的情况下找到第三高的薪水.

在我使用的第二高工资的情况下

SELECT salary FROM table WHERE salary < ( SELECT MAX( salary ) order by salary desc

找到我使用的限制的第三高

select salary from one order by salary desc limit 3,1

现在如何在不使用限制的情况下找到第n个工资?

Jay*_*tel 12

试试这个查询,

   SELECT *
   FROM one one1
   WHERE ( 3 ) = ( SELECT COUNT( one2.salary )
                   FROM one one2
                   WHERE one2.salary >= one1.salary
                 )
Run Code Online (Sandbox Code Playgroud)

在这里WHERE(n)哟可以输入任何数字来返回最高薪水.

检查一下 Demo SQLFiddle

  • 如果有重复的记录,此查询将失败,例如,如果两个雇员的工资相同,则它将返回0行。 (2认同)
  • 如果你有重复的工资,这是行不通的。 (2认同)