16

我是 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 列

你能帮我解决这个问题吗?

4

1 回答 1

33

错误消息有点误导。当你select有一堆字段和一个聚合时,你必须对group by每个字段 youselect并且只有字段 you 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
于 2013-04-08T02:31:11.073 回答