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