select 
date_format(in_time,"%Y-%m-%d") as dt,
round(sum(timestampdiff(second,in_time,out_time))/count(distinct uid),1) as avg_viiew_len_sec
from tb_user_log
where date_format(in_time,"%Y-%m")='2021-11' and artical_id!=0
group by dt
order by avg_viiew_len_sec

首先我一开始犯的错是用了减法,我以为用减法就可以计算出秒的差,最后看来还是得要timestampdiff(second,start_time.end_time)才可以。

第二犯的错是总以为别名后面不能用,应该是前面不能用后面能用,减少代码复杂度,增加可读性

第三犯的大错是没看清题目要求,是文章,所以对文章类型artical_id有要求,不能为0

最后犯的错就是就是之前没有简化2021年11月的表达,应该就只要把年和月拿出来然后等于'2021-11'就可以了,没必要用不等式描述