with t as(
SELECT staff_gender,department,normal_salary-dock_salary as salary 
FROM staff_tb as st INNER JOIN salary_tb as sa ON st.staff_id=sa.staff_id
)
SELECT department,
ROUND(AVG(salary),2) as average_actual_salary,
IFNULL(ROUND(AVG(IF(staff_gender='male',salary,NULL)),2),0.00) as average_actual_salary_male,
IFNULL(ROUND(AVG(IF(staff_gender='female',salary,NULL)),2),0.00) as average_actual_salary_female 
FROM t 
GROUP BY department ORDER BY average_actual_salary DESC