2012-11-07 10 views
2

我需要創建一個SQL查詢以從名爲JOBS的表中的一個唯一行條目中檢索所有值。如何使用引用表中的外鍵返回最重複的值

但是爲了做到這一點,我需要使用一個名爲EMPLOYEES的表,它具有JOBS表的外鍵。 條件是從表JOB中返回job_title,該表的job_id在EMPLOYEES表中重複多次。

我需要用一條SQL語句來完成它。

所需的輸出:

Stock Clerk 

這是查詢我

SELECT job_id 
FROM (SELECT job_id FROM employees GROUP BY job_id ORDER BY COUNT(*) desc) 
WHERE ROWNUM <= 1; 

,但還不夠好,因爲它是從EMPLOYEESjob_title我需要什麼。

你有什麼想法我該怎麼做?我使用的是Oracle 11g數據庫

這是我的表什麼樣子:

員工

EMPLOYEES

JOBS

JOBS

+0

這些真實的電話號碼和真實的工資人?如果沒有,那是你在那裏生成的一些很好的測試數據! –

回答

1
SELECT job_title from JOBS where JOB_ID = (
SELECT job_id FROM employees GROUP BY job_id ORDER BY COUNT(*) desc LIMIT 1) 

不記得的副手,如果你能在Oracle使用限制1,但如果沒有的話

SELECT job_title from JOBS where JOB_ID = (
SELECT job_id FROM employees GROUP BY job_id ORDER BY COUNT(*) desc where ROWNUM=1) 

還要注意的是,如果頂部2+作業ID的相等,將只打印其中的一個(即如果SA_REP和ST_CLERK都出現4次,只會顯示其中一個) 目前尚不清楚你的要求是什麼,但上述查詢只返回其中一個