select 
    department,
    coalesce(average_actual_salary,'0.00') as average_actual_salary,
    coalesce(average_actual_salary_male,'0.00') as average_actual_salary_male,
    coalesce(average_actual_salary_female,'0.00') as average_actual_salary_female
from (
select
    department,
    round(avg(salary),2) as average_actual_salary,
    round(avg(if(staff_gender = 'male',salary, null )),2)as average_actual_salary_male,
    round(avg(if(staff_gender = 'female',salary, null )),2) as average_actual_salary_female
from
    (
        select
            a.staff_id,
            staff_name,
            staff_gender,
            department,
            (normal_salary - dock_salary) as salary
        from
            staff_tb a
            LEFT join salary_tb b on a.staff_id = b.staff_id
    ) tt
group by
    department
order by average_actual_salary desc
) t1