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) is there any efficient way to find nth largest also?
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
);
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..
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...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With