select s.department,round(avg(sa.normal_salary-sa.dock_salary),3) as avg_salary
from staff_tb s
join salary_tb sa
on s.staff_id = sa.staff_id
where sa.normal_salary - sa.dock_salary between 4000 and 30000
group by s.department
order by avg_salary desc

简单