web-dev-qa-db-ja.com

Oracle SQLでの式によるグループとの内部結合

私はsqlを初めて使用するので、どんな助けでもありがたいです。

employeesjobsの2つのテーブルがあります。 employees変数を含むjob_id(複数の従業員が同じjob_IDを持つことができます)。 jobsには変数が含まれますjob_idおよびjob_title(1つのjob_IDは1つの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

これを修正するのを手伝ってくれませんか?

15
Cici

エラーメッセージは少し誤解を招くです。 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
27
Dan Bracuk