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