第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Oracle SQL-如何檢索列的前5個值

Oracle SQL-如何檢索列的前5個值

aluckdog 2019-11-04 09:28:27
如何編寫查詢,其中僅返回具有最高或最低列值的選定行數(shù)。例如,一份薪水最高的5位員工的報告?
查看完整描述

3 回答

?
慕的地6264312

TA貢獻1817條經(jīng)驗 獲得超6個贊

最好的方法是使用分析函數(shù)RANK()或DENSE_RANK()...


SQL> select * from (

  2        select empno

  3               , sal

  4               , rank() over (order by sal desc) as rnk

  5        from emp)

  6  where rnk <= 5

  7  /


     EMPNO        SAL        RNK

---------- ---------- ----------

      7839       5000          1

      7788       3000          2

      7902       3000          2

      7566       2975          4

      8083       2850          5

      7698       2850          5


6 rows selected.


SQL>

出現(xiàn)平局時,DENSE_RANK()壓縮間隙:


SQL> select * from (

  2        select empno

  3               , sal

  4               , dense_rank() over (order by sal desc) as rnk

  5        from emp)

  6  where rnk <= 5

  7  /


     EMPNO        SAL        RNK

---------- ---------- ----------

      7839       5000          1

      7788       3000          2

      7902       3000          2

      7566       2975          3

      8083       2850          4

      7698       2850          4

      8070       2500          5


7 rows selected.


SQL>

您更喜歡哪種行為取決于您的業(yè)務需求。


還有ROW_NUMBER()分析函數(shù),我們可以使用它返回精確的行數(shù)。但是,除非業(yè)務邏輯愿意在出現(xiàn)平局的情況下隨意截斷結(jié)果集,否則我們應避免使用基于行號的解決方案。要求獲得五個最高值與按最高值排序的前五個記錄有所不同


還有使用ROWNUM偽列的非解析解決方案。這很笨拙,因為在ORDER BY子句之前應用了ROWNUM,這可能導致意外結(jié)果。幾乎沒有任何理由使用ROWNUM而不是ROW_NUMBER()或排名函數(shù)之一。


查看完整回答
反對 回復 2019-11-04
?
www說

TA貢獻1775條經(jīng)驗 獲得超8個贊

試試這個:


SELECT * FROM 

    (SELECT field1, field2 FROM fields order by field1 desc) 

where rownum <= 5

還請查看該資源,以獲取有關(guān)rownum工作原理的更詳細描述。


查看完整回答
反對 回復 2019-11-04
?
月關(guān)寶盒

TA貢獻1772條經(jīng)驗 獲得超5個贊

在Oracle 12c中,可以使用FETCH..FIRST ROWS..ONLY


獲取前5名最高薪水。


 SELECT *

       FROM EMPLOYEES

   ORDER BY SALARY DESC

FETCH FIRST 5 ROWS ONLY;


查看完整回答
反對 回復 2019-11-04
  • 3 回答
  • 0 關(guān)注
  • 971 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號