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 / aalee

SELECT *
FROM employees
ORDER BY salary DESC
LIMIT 2 , 1


its so simple!!!!!!

Is This Answer Correct ?    6 Yes 8 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

Why is pl sql needed?

509


What is a dirty read sql?

476


What are the different types of functions in sql?

512


How delete all records from table in sql?

548


What is group by in sql?

544






What are the uses of sysdate and user keywords?

624


When is the update_statistics command used?

570


What is the best sql course?

532


What is package in pl sql with an examples?

545


What is orm in sql?

533


What is the use of procedures?

539


differentiate between float and double. : Sql dba

555


How do you drop a trigger?

540


what is a composite primary key ? : Sql dba

579


Will truncate release space?

514