with a as( select staff_id,round(timestampdiff(minute,first_clockin,last_clockin)/60,1) as time from attendent_tb) select department,concat(round((sum(case when time>9.5 then 1 else 0 end)/count(*))*100,1),'%') as ratio from staff_tb s join a on s.staff_id=a.staff_id group by department order by ratio desc