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
What is crud diagram?
What are different functions in sql?
how to run 'mysql' commands from a batch file? : Sql dba
What are all types of user defined functions?
What is using in sql?
What is sqlite used for?
what are the system privileges that are required by a schema owner (user) to create a trigger on a table?
What is the purpose of the sql select top clause?
what are numeric data types? : Sql dba
Could you please provide oca (oracle 10g) dumps for my certification ?
how to analyze tables with 'mysqlcheck'? : Sql dba
How do I create a memory optimized filegroup?
What is the difference between in and between in sql?
Does a primary key have to be a number?
What is a sql schema used for?