16

私はSQLが初めてです。どんな助けでも大歓迎です。

私は2つのテーブルを持っていemployeesますjobs. 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 でエラーが発生しました

これを修正するのを手伝ってもらえますか?

4

1 に答える 1

33

エラー メッセージは少し誤解を招きます。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
于 2013-04-08T02:31:11.073 に答える