SELECT department, CONCAT(ROUND(100 * SUM(IF(time_diff > 9.5, 1, 0)) / COUNT(staff_name), 1), '%') AS ratio FROM( SELECT department, staff_name, ROUND(TIMESTAMPDIFF(MINUTE, first_clockin, last_clockin) / 60, 1) AS time_diff FROM staff_tb s JOIN attendent_tb a ON s.staff_id = a.staff_id )AS tb1 GROUP BY department ORDER BY ratio DESC