how to check the 3rd max salary from an employee table? One
of the queries used is as follows:

select sal from emp a where 3=(select
count(distinct(sal)) from emp b
where a.sal<=b.sal).

Here in the sub query "select
count(distinct(sal)) from emp b
where a.sal<=b.sal" or
"select count(distinct(sal)) from emp b
where a.sal=b.sal" should reveal the same number of rows is
in't it? Can any one here please explain me how is this
query working perfectly.

However, there is another query to get the 3rd highest of
salaries of employees that logic I can understand. Pls find
the query below.
"select min(salary) from emp where salary in(select
distinct
top 3 salary from
emp order by salary desc)"

Please explain me how

"select sal from emp a where 3=(select
count(distinct(sal)) from emp b
where a.sal<=b.sal)" works

source:http://www.allinterview.com/showanswers/33264.html.

Thanks in advance
Regards,
Karthik.

Answer Posted / s.panda

select level,max(sal) from emp where level=&levelno
connect by prior sal>sal group by level

By entering the level no,Accordingly we can get the nth highest salay of a table.

Is This Answer Correct ?    1 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

How do you delete data from a table?

537


Is nosql faster than sql?

540


how many columns can be used for creating index? : Sql dba

516


What is asqueryable?

529


what does myisamchk do? : Sql dba

555






What are stored procedures in mysql?

556


What is foreign key sql?

550


What is the example of procedure?

519


What is dml statement?

515


What is hibernate and its relation to sql?

591


How many developers work on postgresql?

559


Can I learn sql in a week?

547


Can a trigger call a stored procedure?

534


how to dump a table to a file with 'mysqldump'? : Sql dba

549


What is a null value?

653