为了找出oracle中的第N个最大sal,我使用下面的查询
SELECT DISTINCE sal
FROM emp a
WHERE (
SELECT COUNT(DISTINCE sal)
FROM emp b
WHERE a.sal<=b.sal)=&n;
但根据我的说法,如果表大小很大,使用上面的查询将花费更多时间来执行。
-
我正在尝试使用以下查询
SELECT sal
FROM (
SELECT DISTINCE sal
FROM emp
ORDER BY sal DESC )
WHERE rownum=3;
但没有得到输出..请提出任何建议..请分享有关如何优化查询并减少查询执行时间的任何链接。
try this
select *
from
(
select
sal
,dense_rank() over (order by sal desc) ranking
from table
)
where ranking = 4 -- Replace 4 with any value of N
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)