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