在oracle sql中通过表达式进行内连接

时间:2013-04-08 02:27:58

标签: sql oracle group-by inner-join

我是sql的新手,感谢任何帮助。

我有两个表,employeesjobsemployees包含变量job_id(多个员工可以拥有相同的job_ID)。 jobs包含变量job_idjob_title(一个job_ID对应一个job_title,如果您感兴趣,这是oracle中的hr模式)。

我想要返回查询:job_title,job_ID和具有相同job_Id的人数。

我尝试了以下代码:

select j.job_title, e.job_ID, count(e.job_ID)
from employees e, jobs j
where e.job_id=j.job_id
group by e.job_Id

错误信息是:

  

ORA-00979:不是GROUP BY表达式   00979. 00000 - “不是GROUP BY表达式”   *原因:
  *操作:
  行错误:83列:8

你可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:26)

错误消息有点误导。当您select一堆字段和汇总时,您必须group by每个字段select,并且只有select字段。所以你的查询必须是:

select j.job_title, e.job_ID, count(e.job_ID)
from employees e, jobs j
where e.job_id=j.job_id
group by e.job_Id, j.job_title