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