find out the third highest salary?
Answer Posted / rajdevar
Guys
i have executed this query in sql plus.This is correct
Select * from EMP_USER A where n-1 = (select count
(distinct (sal)) from EMP_USER B where A.sal<B.sal)
where n=3
reason for using n-1 is below:
1.We are using correlated sub query.so sal value from each
row in outer query(EMP_USER A) is compared with sal of all
the rows in EMP_USER B
eg:
ENAME SAL
----- -----
SMITH 800
KING 5000
FORD 3000
here third highest is 800.so when executing this 800 from
outer query is compared with 800,5000,3000 in inner query
which returns a count(distinct(sal) = 2
if you use n instead of n-1 you get a empty result.
Let me know if this is correct
| Is This Answer Correct ? | 13 Yes | 5 No |
Post New Answer View All Answers
Difference between inner join vs where ?
How to unlock the sample user account in oracle?
How to rename an index?
Can we use oracle pl/sql block in core java? if so how? pls get back to me .....
How to name query output columns in oracle?
How to delete multiple rows from a table in oracle?
How to define an external table with a text file?
Is oracle a programming language?
Is there an oracle sql query that aggregates multiple rows into one row?
How to define default values for formal parameters?
How can you tell how much space is left on a given file system and how much space each of the file systems subdirectories take-up?
How do I manually create a database in oracle?
How to do paging with oracle?
How to start an oracle instance?
What are the arithmetic operations?