with table1(department,average_actual_salary) as (select department,round(avg(normal_salary-dock_salary),2) as average_actual_salary
from staff_tb
join salary_tb on staff_tb.staff_id=salary_tb.staff_id 
group by department)
select table1.department,average_actual_salary,COALESCE(average_actual_salary_male, 0) AS average_actual_salary_male,
COALESCE(average_actual_salary_female, 0) AS average_actual_salary_female
from table1
left join (select department,round(avg(normal_salary-dock_salary),2)
as average_actual_salary_male from staff_tb join salary_tb on staff_tb.staff_id=salary_tb.staff_id where staff_gender='male' group by department) table_male on table1.department=table_male.department
left join (select department,round(avg(normal_salary-dock_salary),2)
as average_actual_salary_female from staff_tb join salary_tb on staff_tb.staff_id=salary_tb.staff_id where staff_gender='female' group by department) table_female on table1.department=table_female.department
order by average_actual_salary desc