query [message #21369] |
Tue, 30 July 2002 06:55 |
chandra sekhar.s
Messages: 13 Registered: July 2002
|
Junior Member |
|
|
Solve the followint quries without using correlated
query :
1) Top N- Salaries
b) N th Sal
from emp table.
|
|
|
Re: query [message #21371 is a reply to message #21369] |
Tue, 30 July 2002 07:05 |
|
Mahesh Rajendran
Messages: 10707 Registered: March 2002 Location: oracleDocoVille
|
Senior Member Account Moderator |
|
|
there are many methods
SQL> ed
Wrote file afiedt.buf
1 select ename, sal,rownum as ranking
2 from (select ename, sal
3 from emp order by sal desc)
4* where rownum <= 5
SQL> /
ENAME SAL RANKING
---------- ---------- ----------
KING 5000 1
SCOTT 3000 2
FORD 3000 3
JONES 2975 4
BLAKE 2850 5
SQL> ed
Wrote file afiedt.buf
1 select ename, sal, ranking
2 from (select ename, sal, RANK() OVER (ORDER BY sal DESC NULLS LAST) as ranking
3 from emp)
4* where ranking <= 5
SQL> /
ENAME SAL RANKING
---------- ---------- ----------
KING 5000 1
SCOTT 3000 2
FORD 3000 2
JONES 2975 4
BLAKE 2850 5
SQL> ed
Wrote file afiedt.buf
1* SELECT * FROM EMP X WHERE &N=(SELECT COUNT(DISTINCT SAL) FROM EMP WHERE SAL>=X.SAL)
SQL> /
Enter value for n: 3
old 1: SELECT * FROM EMP X WHERE &N=(SELECT COUNT(DISTINCT SAL) FROM EMP WHERE SAL>=X.SAL)
new 1: SELECT * FROM EMP X WHERE 3=(SELECT COUNT(DISTINCT SAL) FROM EMP WHERE SAL>=X.SAL)
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7566 JONES MANAGER 7839 02-APR-81 2975 20
|
|
|