开发者

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

Is there a command akin to:

I've seen:

select salary
from tbl_salary t
where &n = (
    select count(salary) 
    from(
        select distinct salary
        from tbl_salary
    )where t.salary<=salary
);

How does this it works?

Are there other simple ways to get result?


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


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)


// for highest salary of table

select salary from table order by salary desc limit 0,1

// for second highest salary

select salary from table order by salary desc limit 1,1

Using this query you get nth number of salary from table....


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


You can do it using the limit clause:

select * from tbl_salary order by salary desc limit 2,1;


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)


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


Simplest Implementation,

 (select * from tbl_salary order by salary desc limit 5) order by salary limit 1;


 (select * from tbl_salary order by salary desc limit 2) order by salary limit 1;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜