Hi,
Can anybody please explain me the flow of the below query.
I am not able to understand how this query works.
This query is for finding the Nth highest salary..
SELECT DISTINCT (a.sal)
FROM EMP A
WHERE &N = (SELECT COUNT (DISTINCT (b.sal)) FROM EMP B
WHERE a.sal<=b.sal);
If N = 2 then second highest salary will be the o/p.
If N = 3 then third highest salary will be the o/p.
and so on..
Thanks,
Nitin
Answer Posted / avi
Above Answer is correct With small modification that it is a
corelated sub query first it considers sal from a like a.sal
then it compares with all the sal in a sub query the result
will be the no. of counts.This count compares with N value
which matches will be the Nth sal.
| Is This Answer Correct ? | 5 Yes | 0 No |
Post New Answer View All Answers
What is the need of merge statement?
What are variables in pl sql?
What is the use of function in sql?
What is full join?
What are few of the schema objects that are created using PL/SQL?
What is the meaning of disabling a trigger?
How do you rank data in sql?
What are the different sql languages?
What does := mean in pl sql?
How do you write an index?
What is a table partition?
In pl/sql, what is bulk binding, and when/how would it help performance?
What is the execution plan in sql?
How do you declare a variable in pl sql?
What is informix sql?