with t1 as(
select sb.department,count(*) as people from staff_tb as sb
left join attendent_tb as ab 
on sb.staff_id=ab.staff_id
group by sb.department) ,
t2 as(
select sb.department,count(*) as people from staff_tb as sb
left join attendent_tb as ab 
on sb.staff_id=ab.staff_id
where timestampdiff (minute,ab.first_clockin,last_clockin)/60 >9.5
group by sb.department)
select t1.department ,concat(ifnull(round(t2.people*100 /t1.people,1),0.0),'%')
as ratio
from t1 
left join t2
on t1.department=t2.department
order by ratio desc
;