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