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