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
How many data types are supported?
How do I uninstall oracle 11g?
Why cursor variables are easier to use than cursors?
What is a relational database management system?
What is Library Cache in Oracle?
What does sharding mean?
Why do we need integrity constraints in a database?
How to set a transaction to be read only in oracle?
How to install oracle database 10g xe?
Explain the blob datatype?
What do you mean by group by clause?
What is the difference between translate and replace in oracle?
Explain the use of record option in exp command.
In AP we done Customizations for Late Payments Charges. For Reporting Purpose What are the Documents Prepared for Customer Understanding??
What is an oracle tablespace?