2016-04-29 3 views
0

Я попытался это, но, очевидно, это будет давать только Mt средней зарплате для всех отделов не каждой классификации должностейКак отобразить department_id, job_id и среднюю зарплату для каждой классификации работы в каждом отделе?

SELECT e.department_id, e.job_id, (SELECT avg(salary) 
            FROM employees) 
FROM employees e 
GROUP BY department_id, job_id; 
+3

Не могли бы вы предоставить свою таблицу и выход uoi? –

+0

Почему вы используете группу, если ваша агрегированная функция находится в подзапросе? –

+0

@BrijalSavaliya У меня нет вывода, но мои таблицы - это отделы, рабочие задания Я использую схему HR для ORACLE SQL –

ответ

1

Я полагаю, вы хотите, чтобы это (если ваша цель получить среднюю зарплату за пару department_id/job_id) :

SELECT e.department_id, e.job_id, avg(e.salary) 
FROM employees e 
GROUP BY e.department_id, e.job_id; 

Если вы хотите, в среднем только DEPARTMENT_ID вы можете написать:

SELECT e.department_id, e.job_id, 
    (SELECT avg(e1.salary) 
    FROM employees e1 
    where e1.department_id = e.department_id) 
FROM employees e 
GROUP BY e.department_id, e.job_id; 
2

вы хотите сРЕДНЕМ Департамента зарплата? Сделайте коррелированный подзапрос:

SELECT e.department_id, e.job_id, (SELECT avg(salary) 
            FROM employees e2 
            where e2.department_id = e.department_id) 
FROM employees e