Oracle 中的第 N 个最高薪水

2024-04-20

为了找出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(使用前将#替换为@)

Oracle 中的第 N 个最高薪水 的相关文章

随机推荐