题解 | #2021年11月每天的人均浏览文章时长#
2021年11月每天的人均浏览文章时长
https://www.nowcoder.com/practice/8e33da493a704d3da15432e4a0b61bb3
# 计算每条记录的时长 # 计算每天有几个人 # 按天分组 # 查询天,平均浏览时长 SELECT dt, ROUND(SUM(sec)/COUNT(DISTINCT uid), 1) avg_viiew_len_sec FROM ( # 子查询,查询uid,浏览时长、日期格式化 SELECT uid, TIMESTAMPDIFF(SECOND, in_time, out_time) sec, DATE_FORMAT(in_time, '%Y-%m-%d') dt FROM tb_user_log # 加限制条件是说当id为0的时候是在非浏览状态下的记录,不算浏览 WHERE artical_id != 0 ) a GROUP BY dt # 限制11月的记录 HAVING dt BETWEEN '2021-11-01' AND '2021-11-30' # 时间由短到长,也就是正序 ORDER BY avg_viiew_len_sec
踩的坑:看到题干说文章id为0代表是在列表页出现的,心想估计要注意,但在测试样例没出现,就忽略了,提交的时候发现有的天的多了,看到题解才发现了这个问题