У меня 3 сотрудника с одинаковыми отделами.я хотел бы найти среднее значение их зарплаты на основе предыдущих строк.
Например,
Employee_id department_id salary avg(salary)
101 1 5000 5000
102 1 10000 7500
103 1 15000 10000
Это похоже на идентификатор отдела, равный 1, с первой зарплатой, мы находим среднее значение 5000 дляидентификатор сотрудника 101 и для того же идентификатора отдела как 1 для идентификатора сотрудника как 102, мы находим среднее для двух значений, сгруппированных по идентификатору отдела.Следовательно, среднее значение равно (10000 + 5000) / 2 = 7500
Но для идентификатора сотрудника, равного 103, идентификатор отдела равен 1 и сгруппирован со всеми тремя вышеуказанными значениями суммы.Следовательно, средняя зарплата составляет (10000 + 5000 + 15000) / 3 = 10000
Требование: меня попросили использовать query_partition_clause и order_by_clause.
Следовательно, я попытался следующим образом,
select avg(salary) OVER (partition by department_id ORDER BY department_id ) salary, department_id, salary from employee
Но я всегда получаю значения, рассматривая отдел из 3 значений данных.
Отныне кто-нибудь может помочь с этим разрешением?
Большое спасибо за помощь.