how to find nth highest salary
Answers were Sorted based on User's Feedback
Answer / himanshu
Just replace the N with required number:
SELECT empid, empname, empsalary FROM emp e
WHERE (SELECT COUNT(DISTINCT(e2.empsalary))
FROM emp e2
WHERE e2.empsalary >=
e.empsalary ) = N
ex: 4th highest
SELECT empid, empname, empsalary FROM emp e
WHERE (SELECT COUNT(DISTINCT(e2.empsalary))
FROM emp e2
WHERE e2.empsalary >=
e.empsalary ) = 4
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / aravinda
try with this query you will get desired position salary.
Select Salary From Employees a Where 1=(
Select Count(Distinct Salary) From Employees b
Where a.Salary <= b.Salary );
just replace where clause number for desired position. ,2,3,4
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / sanchit dubey
DECLARE @SQL VARCHAR(2000), @N INT
SET @N = 5
SET @N = @N - 1
SET @sql = 'select top 1 salary from ABC where salary not
in ( SELECT TOP ' + CAST(@n AS VARCHAR(100)) + ' salary
FROM ABC order by salary desc ) ' + ' order by salary desc '
SELECT @SQL
EXEC @SQL
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / avinash
declare @n;
set @n = N
select * from tbl
where @n in (
select dense_rank over (order by salary) as rank_sal
from tbl )
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / harshal
Below query is written assuming table "employee" has a column called "salary".
select salary from (select salary from (select distinct(salary) from employee order by salary desc)where rownum<n) order by salary asc where rownum<1;
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / yoursguna@gmail.com
SELECT * FROM `salary_table` group by `salary` order by
`salary` desc limit 1,1
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / nitin munjani
Using Row_Number() function
Here N refers the Nth highest salary
select empid,empname from mstemployee where empsalary in (
(select empsalary from
(select Row_Number() over(order by empsalary desc)
rownm,empsalary from mstemployee
group by empsalary) o where rownm=N))
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / vinay upadhyay
These are tested queries to find Nth highest salary
Select distinct(sal) From employee emp Where n =
( Select Count(Distinct y.sal) From employee y Where y.sal
>=emp.sal)
OR
select distinct(salary) from employee order by salary desc
limit n-1,1
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / ravindra babu
select sal from (select sal from(Select distinct sal from
EMP order by sal desc)Where rownum <=2 order by sal asc)
Where rownum=1;
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / sudhir
DISPLAY THE RECORDS WHO'S GETTING 3RD HIGHEST SALARY.
SELECT * FROM EMP E1
WHERE 3 =(SELECT COUNT(DISTINCT(SAL))
FROM EMP E2
WHERE E1.SAL <= E2.SAL)
| Is This Answer Correct ? | 0 Yes | 0 No |
What is the main purpose of having conversation group?
hi friends please answer this question ASAP:- how to count the no. of employee in a each department or no. of employee in each location by using emp/dept table
What is difference between equi join and natural join?
What's the difference between a primary key and a unique key?
How to a Query to copy data from on table to another table.
How to use the inserted and deleted pseudo tables?
Why we need to use secondry database file? though, we can do same work using primary database file also.
What is the difference between coalesce() & isnull()?
what is spatial nonclustered index
How to get a list of columns in a view using the "sp_columns" stored procedure?
How to modify an existing stored procedure in ms sql server?
Hi all, can any one please tell me the difference between sql server 2008 and orace 9i
Oracle (3259)
SQL Server (4518)
MS Access (429)
MySQL (1402)
Postgre (483)
Sybase (267)
DB Architecture (141)
DB Administration (291)
DB Development (113)
SQL PLSQL (3330)
MongoDB (502)
IBM Informix (50)
Neo4j (82)
InfluxDB (0)
Apache CouchDB (44)
Firebird (5)
Database Management (1411)
Databases AllOther (288)