select department, round(sum(normal_salary-dock_salary)/count(*),3) as avg_salary from staff_tb join salary_tb using(staff_id) where normal_salary-dock_salary between 4000 and 30000 group by department order by avg_salary desc