select
    post,
    avg(
        timestampdiff (second, first_clockin, last_clockin) / 3600
    ) work_hours
from
    staff_tb s
    join attendent_tb a on s.staff_id = a.staff_id
group by
    post
order by
    work_hours desc