Skip to content
Advertisement

Find out the nth-highest salary from table

name   salary
-----   -----
mohan     500
ram      1000
dinesh   5000
hareesh  6000
mallu    7500
manju    7500
praveen 10000
hari    10000

How would I find the nth-highest salary from the aforementioned table using Oracle?

Advertisement

Answer

you can use something like this.. this is what i have tested and then pasted here

SELECT *
FROM   tblname
WHERE  salary = (SELECT *
                 FROM   (SELECT *
                         FROM   (SELECT *
                                 FROM   (SELECT DISTINCT( salary )
                                         FROM   tblname
                                         ORDER  BY salary DESC) A
                                 WHERE  rownum <= nth) B
                         ORDER  BY salary ASC) C
                 WHERE  rownum <= 1) 

in place of ‘tblname’ give your table name and then in place nth give your desired nth highest salary that you want

enter image description here

you can see in the screen shot that it is working.

User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement