WITH temp AS (
    SELECT uid,substr(in_time,1,10) dt,artical_id,in_time,out_time
    FROM tb_user_log
    WHERE artical_id<>0 and year(in_time) = 2021 and month(in_time) = 11
)
SELECT dt,ROUND(SUM(TIMESTAMPDIFF(SECOND,in_time,out_time))/COUNT(DISTINCT uid),1) avg_viiew_len_sec
FROM temp 
GROUP BY dt
ORDER BY avg_viiew_len_sec;

思路

就需要先对日期处理,后续按照日期分组就好,切记在处理时,这只需要计算11月份的,所以只需要拿出11月份的数据就好。