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;