select single_date, round(avg(per_day_time),1) as avg_viiew_len_sec # round(sum(per_day_time) / count(*),1) from( select uid, date(in_time) as single_date, sum(timestampdiff(second,in_time,out_time)) as per_day_time from tb_user_log where YEAR(in_time) = 2021 AND MONTH(in_time) = 11 and artical_id != 0 group by uid,date(in_time) ) as subquery group by single_date order by avg_viiew_len_sec
傻瓜解法,先按用户id和日期分组,获取了每天每用户的总浏览时间。
然后再嵌套查询,按照日期分组,计算每天总浏览时间的平均值,得到最终结果。
中间由于忘记了题目要求的artical_id要不等于0的条件,一度卡了几分钟,太弱智了.......