select
    t1.department,
    cast(avg(t2.normal_salary-t2.dock_salary) as decimal(10,3)) as avg_salary
from 
    staff_tb t1
left join 
    salary_tb t2
on 
    t1.staff_id=t2.staff_id
where-----原本想在group by后用having来做限定,但不行,原因是因为HAVING 子句只用于在分组之后过滤分组结果,通常后面要跟聚合函数或者 GROUP BY 中指定的列
    (t2.normal_salary-t2.dock_salary) between 4000 and 30000
group by 
    t1.department 
order by
    avg_salary desc