我是sql的新手,感谢任何帮助。
我有两个表,employees
和jobs
。 employees
包含变量job_id
(多个员工可以拥有相同的job_ID)。 jobs
包含变量job_id
和job_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
你可以帮我解决这个问题吗?
答案 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