SELECT
    b.department,
    AVG(a.normal_salary - a.dock_salary) AS avg_salary
FROM salary_tb AS a
INNER JOIN staff_tb AS b
    ON (a.staff_id = b.staff_id)
WHERE a.normal_salary - a.dock_salary >= 4000
    AND a.normal_salary - a.dock_salary <= 30000
GROUP BY b.department
ORDER BY avg_salary DESC;