2017-12-11 13 views
0

私は最初に部署で働いている人を数える必要があり、次に部署で働く平均的な人を計算し、小数点以下桁数私は非常に多くの異なるバリエーションを試しました。同じSQLクエリでROUND、AVG、COUNTを使用

これは私が試した最初のものではありませんが、これまでに得たものですが、常に同じエラーメッセージが表示されます。 (ORA-00979 - 発現によるないグループ)

SELECT department_id, 
    ROUND(AVG(c.cnumber),1) 
FROM employees c 
WHERE c.cnumber = 
      (SELECT COUNT(c.employee_id) 
       FROM employees c) 
GROUP BY department_id; 

私は本当にこの時点でに何をすべきか分からないし、任意の助けをいただければ幸いです。

従業員表: enter image description here

+1

どのようなエラーが表示されますか? – PKatona

+1

あなたの質問には何が問題なのですか? – Eric

+0

「部署で働く平均的な人々」という言葉をどのように定義していますか? 「DEPT1」には2人、「DEPT2」には3人、「DEPT3」には7人の人々がいますが、希望する平均(またはこれらの3つの部門の平均)は何ですか? – krokodilko

答えて

0

はあなたの説明から、この(Oracleの構文)の例試してみてください。

with department_count as (
SELECT department_id, COUNT(c.employee_id) as employee_count 
FROM employees c 
group by department_id 
) 
SELECT department_id, 
    ROUND(AVG(c.employee_count),1) 
FROM department_count c 
GROUP BY department_id; 

をしかし、このクエリは意味がありませ。 Countは整数であり、countはこの場合1つの部門に対して1つの数値を返します。AVGはcountと同じ値を返します。

多分あなたは部門の給与と従業員の平均人数を計算していますか?

関連する問題