select a.department, round(avg(normal_salary-dock_salary), 3) as avg_salary
from staff_tb a join salary_tb b on a.staff_id=b.staff_id
where normal_salary-dock_salary>=4000 and normal_salary-dock_salary<=30000
group by a.department
order by avg_salary desc;