亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

獲得每個組的最佳結果(在Oracle中)

獲得每個組的最佳結果(在Oracle中)

獲得每個組的最佳結果(在Oracle中)如何在oracle查詢中獲得幾個組的N個結果。例如,給出下表:|--------+------------+------------|| emp_id | name       | occupation ||--------+------------+------------||      1 | John Smith | Accountant ||      2 | Jane Doe   | Engineer   ||      3 | Jack Black | Funnyman   ||--------+------------+------------|還有更多行占用更多。我想從每個職業中找到三名員工(比方說)。有沒有辦法在不使用子查詢的情況下執行此操作?
查看完整描述

3 回答

?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

這產生了你想要的東西,它沒有使用特定于供應商的SQL功能,如TOP N或RANK()。

SELECT MAX(e.name) AS name, MAX(e.occupation) AS occupation 
FROM emp e 
  LEFT OUTER JOIN emp e2 
    ON (e.occupation = e2.occupation AND e.emp_id <= e2.emp_id) GROUP BY e.emp_id 
HAVING COUNT(*) <= 3 ORDER BY occupation;

在此示例中,它為三個員工提供每個職業的最低emp_id值。您可以更改不等式比較中使用的屬性,使其按名稱或其他方式為最高員工提供。


查看完整回答
反對 回復 2019-08-28
  • 3 回答
  • 0 關注
  • 631 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號