Find 3rd Highest Salary

---------Using Sub Query 3rd Highest Salary All Employees---------
SELECT * FROM Emp WHERE Salary IN(
SELECT TOP 1   salary FROM

(
SELECT TOP 3 salary FROM Emp e ORDER BY Salary DESC
)
a ORDER BY a.Salary
)
------------------- 3rd highest salary-----------


-----3rd Hightest salary----------
DECLARE @n INT=3
SELECT DISTINCT(Salary) from emp e1
where @n=(
SELECT COUNT(DISTINCT(salary))  from emp e2
where  e2.salary>=e1.salary
)
--------------3rd Highest Salary-----------


 ;WITH cte AS
 (
     SELECT Id,Name,e.Salary, DENSE_RANK() OVER (PARTITION BY e.Salary ORDER BY e.Salary) AS sal
     FROM Emp e
 )
 SELECT *
 FROM cte WHERE sal=2


-----------------------
DECLARE @N int
SET @N = 3  -- Change the value here to pick a different salary rank

SELECT Salary
FROM (
    SELECT row_number() OVER (ORDER BY Salary DESC) as SalaryRank, Salary
    FROM Emp e
) as SalaryCTE
WHERE SalaryRank = @N
 

Comments

Popular posts from this blog

Querying a Data Table Using Select Method and Lambda Expressions in Dot Net

StringToTable

GetPhoneSSNFormat