-- 思路
-- 先统计每个人的工作时长,然后做表连接。 3600秒等于1小时

WITH t AS(
    SELECT 
        staff_id
        ,ROUND(TIMESTAMPDIFF(SECOND, first_clockin, last_clockin)/3600, 3) AS t_diff
    FROM attendent_tb
)
-- t表的数据格式:
-- staff_id|t_diff|
-- --------+------+
--        1| 9.000|
--        2| 9.500|
--        3| 8.250|

SELECT 
    s.post
    ,AVG(t_diff) AS work_hours
FROM staff_tb s
    INNER JOIN t ON s.staff_id = t.staff_id
WHERE t.t_diff IS NOT NULL
GROUP BY s.post
ORDER BY work_hours DESC
;

END