Can anyone please tell me how to find out the N th largest entry from a table in Oracle?
Like for largest we can use MAX(column_name) i
Try this,
SELECT Sal FROM Tab ORDER BY Sal DESC LIMIT 2,1
You can find the Nth largest value of a column by using the following query
SELECT *
FROM TableName a
WHERE n = (
SELECT count( DISTINCT (b.ColumnName) )
FROM TableName b
WHERE a.ColumnName <= b.ColumnName
);
I think the below query will work to find the second highest record with NOT IN.
SELECT MAX( userId )
FROM table
WHERE userId NOT IN (
SELECT MAX( userId )
FROM table
);
simple and useful...
SELECT MAX(Salary) FROM Employee
WHERE Salary NOT IN (SELECT MAX(Salary) FROM Employee)
SELECT * FROM ( SELECT some_column, row_number() over (order by your_sort_column desc) as row_num FROM some_table ) t WHERE row_num = 3
If you expect more than one row to have the same value in your_sort_column
you can also use the rank() function
SELECT * FROM ( SELECT some_column, rank() over (order by your_sort_column desc) as row_rank FROM some_table ) t WHERE row_rank = 3This migh return more than one row..
It works for second highest salary,
$query = "SELECT * FROM `table_name` ORDER BY field_name` DESC LIMIT 1 , 1 ";