select post, round(avg(timestampdiff(second,b.first_clockin,b.last_clockin) / 3600),3) as work_hours from staff_tb a join attendent_tb b on a.staff_id=b.staff_id where b.first_clockin is not null and b.last_clockin is not null group by post order by work_hours desc;