select
t.department,
concat(cast(sum(t.ifoverwork)*100/count(t.department) as decimal(5,1)),'%') as ratio
from
(select
s.department,
case
    when timestampdiff(second,a.first_clockin,a.last_clockin)/3600>9.5 then 1
    else 0 end as ifoverwork
from staff_tb s left join attendent_tb a
on s.staff_id=a.staff_id) t
group by t.department
order by ratio desc;