如何使用引用表中的外键返回最重复的值

时间:2012-11-07 20:43:23

标签: sql oracle11g

我需要创建一个SQL查询来从名为JOBS的表中的一个唯一行条目中检索所有值。

但要这样做,我需要使用一个名为EMPLOYEES的表,该表具有JOBS表的外键。 条件是从表JOBS返回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;

但不够好,因为job_title来自EMPLOYEES我需要的东西。

你知道我该怎么办?我正在使用Oracle 11g数据库

这就是我的表格的样子:

EMPLOYEES

EMPLOYEES

工作

JOBS

1 个答案:

答案 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中使用LIMIT 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次,则只会显示其中一个) 目前尚不清楚您的要求是什么,但上述查询只会返回其中一个