select
    department,
    round(
        sum(normal_salary - dock_salary) / count(staff_id),
        3
    ) 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;