with
    t1 as (
        select
            at.staff_id,
            timestampdiff (second, first_clockin, last_clockin) / 3600 work_time,
            department
        from
            attendent_tb at
            left join staff_tb st on at.staff_id = st.staff_id
    )
select
    department,
    concat (
        round(
            sum(
                case
                    when work_time > 9.5 then 1
                    else 0
                end
            ) / count(staff_id) * 100,
            1
        ),
        '%'
    ) ratio
from
    t1
group by
    department
order by
    ratio desc