with t as(select staff_name,post,
-- 计算总分钟数,然后除以 60 得到小时数
  TIMESTAMPDIFF(MINUTE, first_clockin, last_clockin) / 60 AS work_hours
from staff_tb a
join  attendent_tb b on a.staff_id = b.staff_id)

select post,round(avg(work_hours),3) as work_hours
from t
group by post
order by work_hours desc