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 / masthan
SELECT MAX(SAL) FROM
EMP WHERE SAL<(SELECT MAX(SAL) FROM EMP WHERE SAL<(SELECT MAX(SAL) FROM EMP))
| Is This Answer Correct ? | 3 Yes | 2 No |
Post New Answer View All Answers
how to extract a unit value from a date and time? : Sql dba
is it possible to pass an object or table to a procedure as an argument?
What are the uses of sysdate and user keywords?
Do we need to create index on primary key?
What is difference between sql function and stored procedure?
How to add a column ‘salary’ to a table employee_details?
how to add a new column to an existing table in mysql? : Sql dba
How do you update a value in sql?
How do I install microsoft sql?
What is union and union all keyword in sql?
Where is pl sql used?
Can we have two clustered index on a table?
define sql delete statement ? : Sql dba
What is the difference between numeric and autonumber?
What are character functions?