How to find n'th highest value of a column?

前端 未结 8 1611
不思量自难忘°
不思量自难忘° 2021-02-20 07:56

Is there a command akin to:

  • 2nd highest salary from tbl_salary or

  • 4th highest salary from tbl_salary ?

相关标签:
8条回答
  • 2021-02-20 08:31

    You can do it using the limit clause:

    select * from tbl_salary order by salary desc limit 2,1;
    
    0 讨论(0)
  • 2021-02-20 08:32

    SELECT sal from emp order by sal desc limit 1,1

    0 讨论(0)
  • 2021-02-20 08:36
    select * from employee order by salary desc limit 1,1
    

    Description : limit x,y

    • x: The row offset from which you want to start displaying records. For nth record it will be n-1.
    • y: The number of records you want to display. (Always 1 in this case)
    0 讨论(0)
  • 2021-02-20 08:39

    I'm sure there is a better way to do this, but:

    SELECT salary FROM tbl_salary ORDER BY salary DESC LIMIT n,1

    Where n is the position you want - 1 (i.e. to get the second highest salary it would be LIMIT 1,1)

    0 讨论(0)
  • 2021-02-20 08:40

    Here is a very simple way to get the result of n'th highest value

    put n=2 to get second highest salary
    pur n=4 to get fourth highest salary
    and so on...

    Here is query
    if n=2

    select salary from tbl_salary e1
    where 2 = (
    select distinct(count(salary))
    from tbl_salary e2
    where e1.salary< e2.salary
    )
    

    Best luck

    0 讨论(0)
  • 2021-02-20 08:41

    If it's a basic query, then just use LIMIT:

    -- get the 4th highest salary
    SELECT salary FROM tbl_salary
    ORDER BY salary DESC
    LIMIT 3,1
    
    0 讨论(0)
提交回复
热议问题