Hi friends, in this article I will explain about  SQL SERVER: How to find nth maximum value and nth minimum values in a
column.
I already explained in the previous articles about How to Get Highest and Lowest Values in a Row using SQL SERVER, How to Display DateTime Formats in Different Languages using SQL Server and How to Calculate Age from Date Of Birth using SQL Server
I already explained in the previous articles about How to Get Highest and Lowest Values in a Row using SQL SERVER, How to Display DateTime Formats in Different Languages using SQL Server and How to Calculate Age from Date Of Birth using SQL Server
| 
DECLARE @MARKS TABLE(ID INT, MATHS INT,SCIENCE INT) 
INSERT INTO @MARKS values(1, 95,98) 
INSERT INTO @MARKS values(2, 34,25) 
INSERT INTO @MARKS values(3, 54,65) 
INSERT INTO @MARKS values(4, 89,85) 
INSERT INTO @MARKS values(5, 76,45) 
INSERT INTO @MARKS values(6, 56,85) 
INSERT INTO @MARKS values(7, 98,23) 
INSERT INTO @MARKS values(8, 100,85) 
-- FIND MAXIMUM MARKS IN MATHS AND GET THAT PERSON SCIENCE MARKS 
SELECT id, MATHS,SCIENCE 
FROM 
( 
SELECT id, MATHS, Row_Number() OVER(ORDER BY MATHS DESC) AS highest_MATHS,SCIENCE,Row_Number() OVER(ORDER BY SCIENCE DESC) AS highest_SCIENCE 
FROM @MARKS 
) as x 
WHERE highest_MATHS = 1 
-- FIND Minimum MARKS IN MATHS 
SELECT id, MATHS 
FROM 
( 
SELECT id, MATHS, Row_Number() OVER(ORDER BY MATHS ASC) AS lowest 
FROM @MARKS 
) as x 
WHERE lowest = 1 
--FIND 2ND MINIMUM MARKS IN MATHS 
SELECT id, MATHS 
FROM 
( 
SELECT id, MATHS, Row_Number() OVER(ORDER BY MATHS ASC) AS lowest 
FROM @MARKS 
) as x 
WHERE lowest = 2 | 
The output of the above code as shown in the below figure.

 
 
No comments:
Post a Comment