select
        stb.department,
        avg(actual_salary) as avg_salary
from 
        staff_tb as stb
left join (
    select
        staff_id,
        normal_salary - dock_salary as actual_salary
    from 
            salary_tb
    where 
            normal_salary - dock_salary between 4000 and 30000
)astb
on 
        stb.staff_id = astb.staff_id
group by
        stb.department
order by
        avg_salary desc